1. 04 Feb, 2014 3 commits
  2. 20 Jan, 2014 1 commit
  3. 09 Jan, 2014 1 commit
  4. 16 Sep, 2013 1 commit
  5. 20 Aug, 2013 1 commit
    • Alexander Larsson's avatar
      x11: Add gdk_x11_display_set_window_scale · 78dae73a
      Alexander Larsson authored
      This lets you force a specific window scale, this is needed
      for mutter to be able to disable the scaling as it needs access
      to unmangled X window/screen sizes. It can also be useful to
      force a specific scale in e.g. tests.
      78dae73a
  6. 07 Aug, 2013 1 commit
  7. 03 Jul, 2013 1 commit
    • Alexander Larsson's avatar
      x11: Initial cut at supporting window scaling for X11 · 525e5cff
      Alexander Larsson authored
      If you set GDK_SCALE=2 in the environment then all windows will be
      scaled by 2. Its not an ideal solution as it doesn't handle
      multi-monitors at different scales, and only affects gtk apps.
      But it is a good starting points and will help a lot on HiDPI
      laptops.
      525e5cff
  8. 13 Jun, 2013 1 commit
  9. 27 May, 2013 1 commit
  10. 01 May, 2013 1 commit
    • Benjamin Otte's avatar
      x11: Move initialization code · 0122a9da
      Benjamin Otte authored
      Move it from GdkDisplayManagerX11.init to GdkDisplay.class_init.
      
      This shouldn't cause any problems, but who knows, so keep this patch
      small.
      
      Reason for this is the unification of display managers.
      0122a9da
  11. 15 Apr, 2013 2 commits
  12. 13 Apr, 2013 1 commit
  13. 06 Apr, 2013 1 commit
  14. 02 Apr, 2013 1 commit
  15. 01 Apr, 2013 1 commit
  16. 19 Feb, 2013 1 commit
  17. 14 Feb, 2013 12 commits
    • Owen W. Taylor's avatar
      Ignore window manager protocol messages for destroyed windows · ff935c57
      Owen W. Taylor authored
      If we get, for example, a _NET_WM_FRAME_DRAWN or _NET_WM_PING
      message on a destroyed window, then we should just ignore it.
      ff935c57
    • Owen W. Taylor's avatar
      GdkFrameClock: Clean up the public API · bb11195e
      Owen W. Taylor authored
      * remove gdk_frame_clock_get_frame_time_val(); a convenience
        function that would rarely be used.
      * remove gdk_frame_clock_get_requested() and
        ::frame-requested signal; while we might want to eventually
         be able to track the requested phases for a clock, we don't
        have a current use case.
      * Make gdk_frame_clock_freeze/thaw() private: they are only
        used within GTK+ and have complex semantics.
      * Remove gdk_frame_clock_get_last_complete(). Another convenience
        function that I don't have a current use case for.
      * Rename:
        gdk_frame_clock_get_start() => gdk_frame_clock_get_history_start()
        gdk_frame_clocK_get_current_frame_timings() => gdk_frame_clock_get_timings()
      bb11195e
    • Owen W. Taylor's avatar
      GdkFrameTimings: strip down to a minimal public API · d5edf9c0
      Owen W. Taylor authored
      Since we're not exporting the ability to create your own frame
      clock for now, remove the setters for GdkFrameTimings fields.
      Also remove all setters and getters for fields that are more
      about implementation than about quantities that are meaningful
      to the applcation and just access the fields directly within
      GDK.
      d5edf9c0
    • Owen W. Taylor's avatar
      Merge GdkFrameHistory into GdkFrameClock · 515e5f74
      Owen W. Taylor authored
      Now that GdkFrameClock is a  class, not interface, there's no real advantage
      to splitting the frame history into an aggregate object, so directly
      merge it into GdkFrameClock.
      515e5f74
    • Owen W. Taylor's avatar
      Fix up for newer draft of wm-spec · 8865ebcc
      Owen W. Taylor authored
      * 64-bit quantities are consistently ordered low-32-bits / high-32-bits
      * data.l[4] in _NET_WM_SYNC_REQUEST indicates which counter to update
      8865ebcc
    • Owen W. Taylor's avatar
      Add gdk_frame_timings_get_predicted_presentation_time() · fb44ea8a
      Owen W. Taylor authored
      For an operation like synchronizing audio to video playback, we need to
      be able to predict the time that a frame will be presented. The details
      of this depend on the windowing system, so make the backend predict
      a presentation time for ::begin-frame and set it on the GdkFrameTimings.
      
      The timing algorithm of GdkFrameClockIdle is adjusted to give predictable
      presentation times for frames that are not throttled by the windowing
      system.
      
      Helper functions:
      
       gdk_frame_clock_get_current_frame_timings()
       gdk_frame_clock_get_refresh_info()
      
      are added for operations that would otherwise be needed multiple times
      in different locations.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=685460
      fb44ea8a
    • Owen W. Taylor's avatar
      Add GDK_DEBUG=frames · 8855bf05
      Owen W. Taylor authored
      Add a debug option to print out detailed statistics about each frame drawn.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=685460
      8855bf05
    • Owen W. Taylor's avatar
      Add GdkFrameHistory and GdkFrameTimings, handle _NET_WM_FRAME_TIMINGS · 15ee04c6
      Owen W. Taylor authored
      In order to be able to track statistics about how well we are drawing,
      and in order to be able to do sophisticated things with frame timing
      like predicting per-frame latencies and synchronizing audio with video,
      we need to be able to track exactly when previous frames were drawn
      to the screen.
      
      Information about each frame is stored in a new GdkFrameTimings object.
      A new GdkFrameHistory object is added which keeps a queue of recent
      GdkFrameTimings (this is added to avoid further complicating the
      implementation of GdkFrameClock.)
      
      https://bugzilla.gnome.org/show_bug.cgi?id=685460
      15ee04c6
    • Owen W. Taylor's avatar
      Freeze the update counter for unmapped windows · 355e305c
      Owen W. Taylor authored
      When a window is unmapped, freeze its frame clock. This avoids doing
      unnecessary work, but also means that we won't block waiting for
      _NET_WM_FRAME_DRAWN messages that will never be received since the
      frame ended while the window was withdrawn.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=685460
      355e305c
    • Owen W. Taylor's avatar
      Use _NET_WM_FRAME_DRAWN to synchronize frame drawing · 8a6895fe
      Owen W. Taylor authored
      As part of the extended _NET_WM_SYNC_REQUEST_COUNTER protocol,
      we get a _NET_WM_FRAME_DRAWN message for each frame we draw. Use this
      to synchronize the updates we are doing with the compositing manager's
      drawing, and ultimately with with display refresh.
      
      We now set the sync request counters on all windows, including
      override-redirect windows, since it is also useful to do synchronized,
      atomic updates for such windows.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=685460
      8a6895fe
    • Owen W. Taylor's avatar
      Switch to an extended form of _NET_WM_SYNC_REQUEST_COUNTER · 69f45742
      Owen W. Taylor authored
      By exporting two XSync counters on a toplevel window, we subscribe
      to an extended form of the _NET_WM_SYNC_REQUEST_COUNTER protocol,
      where the window manager can initiate an atomic frame, as previously,
      but the application can also do so by incrementing the new counter to
      an odd value, and then to an even value to finish the frame.
      
      See:
      https://mail.gnome.org/archives/wm-spec-list/2011-October/msg00006.html
      
      The support for 64-bit integers that GLib requires is used to
      simplify the logic.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=685460
      69f45742
    • Owen W. Taylor's avatar
      GdkDisplayX11: Don't use substructure events in internal accounting · 001f960a
      Owen W. Taylor authored
      We may receive events because SubstructureNotifyMask has been selected
      for the root window. (Most likely, this would occur because GTK+
      is being used inside a window manager like Metacity or Mutter.)
      This can confuse various types of internal accounting, so detect
      such events and comprehensively ignore them for GDK's internal
      purposes. We still need to generate GDK events for these cases
      because you can select for substructure events with
      GDK_SUBSTRUCTURE_MASK.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=685460
      001f960a
  18. 13 Jan, 2013 1 commit
  19. 08 Oct, 2012 1 commit
  20. 30 Jul, 2012 1 commit
  21. 16 May, 2012 1 commit
    • Matthias Clasen's avatar
      Fix a case of 'stuck grab' · 16458b0d
      Matthias Clasen authored
      This was showing up when using a combo box in list mode. After popping
      up the list, the keyboard grab appeared stuck. What was stuck here is
      only the client-side grab, since we forgot to clean up our grabs
      when receiving an UnmapNotify.
      
      This bug was introduced in 1c970036.
      16458b0d
  22. 11 Mar, 2012 1 commit
  23. 02 Mar, 2012 1 commit
    • Mikael Magnusson's avatar
      Iconification using _NET_WM_STATE_HIDDEN hint if supported by WM · 1c970036
      Mikael Magnusson authored
      If the Window Manager supports the _NET_WM_STATE_HIDDEN, we use it to use
      the _NET_WM_STATE protocol when de-iconifying windows (iconification is
      unchanged, via XIconifyWindow). Additionally, we no longer interpret all
      UnmapNotify events for our window as the result of iconification.
      
      (Based on patch by Tomas Frydrych <tf@linux.intel.com>)
      1c970036
  24. 27 Feb, 2012 1 commit
  25. 23 Feb, 2012 1 commit
    • Carlos Garnacho's avatar
      gdk: Keep track of the last slave device used · 5b014bfd
      Carlos Garnacho authored
      This last slave device (stored per master) is used to fill
      in the missing slave device in synthesized crossing events
      that are not directly caused by a device event (ie due to
      configure events or grabs).
      5b014bfd
  26. 21 Feb, 2012 1 commit