1. 26 Oct, 2017 2 commits
  2. 20 Oct, 2017 1 commit
  3. 16 Oct, 2017 1 commit
  4. 04 Oct, 2017 1 commit
  5. 03 Oct, 2017 1 commit
  6. 26 Sep, 2017 1 commit
  7. 23 Aug, 2017 1 commit
  8. 02 Aug, 2017 1 commit
  9. 20 Jul, 2017 1 commit
  10. 22 Jun, 2017 1 commit
  11. 02 Jun, 2017 3 commits
  12. 23 May, 2017 1 commit
    • Jonas Ådahl's avatar
      GdkWaylandWindow: Allow calling export() multiple time · dba57db1
      Jonas Ådahl authored
      Allow getting the same export handle multiple times by calling
      gdk_wayland_window_export_handle() multiple times. For each time
      export() is called, a unexport() must be called to unexport.
      When the window is already exported, the exported callback is called
      via a idle handler. If there are multiple export() calls, they are
      invoked in order either when the handle is received by the display
      server, or when the idle callback is invoked.
      Calling unexport() will not affect future invokations of the exported
      callback, unless all export() calls have their unexport() call count
  13. 09 May, 2017 1 commit
  14. 08 May, 2017 5 commits
  15. 21 Apr, 2017 1 commit
  16. 24 Feb, 2017 1 commit
    • Olivier Fourdan's avatar
      wayland: Fix a race condition with xdg_popup resize · 68188fc9
      Olivier Fourdan authored
      When resizing an xdg_popup immediately after the initial mapping, there
      is a race condition between the client and the compositor which is
      processing the initial size given by the xdg_positioner, leading to the
      xdg_popup to be eventually of the wrong size.
      Only way to make sure the size is correct in that case is to hide and
      show the window again. Considering this occurs before the initial
      configure is processed, it should not be noticeable.
  17. 06 Feb, 2017 1 commit
    • Olivier Fourdan's avatar
      wayland: do not clamp anchor values · 7ec16c5c
      Olivier Fourdan authored
      Clamping the anchor values as introduced in commit 9a5ffcd1 to fix bug
      777176 breaks menu positioning.
      By keeping the anchors rectangle size greater than zero, we end up
      deducting some positive value from the original position, so there is no
      need to clamp() actually, keeping the values positive is enough and
      avoids the issue with menu positioning on the menubar.
      An additional benefit is to make the code a lot simpler.
  18. 25 Jan, 2017 1 commit
  19. 19 Jan, 2017 2 commits
  20. 16 Jan, 2017 1 commit
    • Olivier Fourdan's avatar
      wayland: avoid 0 width/height anchor rectangle · 9a5ffcd1
      Olivier Fourdan authored
      Passing a rectangle with zero width or height to xdg_shell-v6
      set_anchor_rect() will cause a protocol error and terminate the client,
      as with gedit when pressing the Win key.
      Reason for this is because the rectangle used to set the anchor comes
      from gtk_text_layout_get_iter_location() which uses the pango layout
      width/height, which can be empty if there is not character at the given
      Make sure we don't use 0 as width or height as an anchor rectangle to
      avoid the protocol error, and compensate the logical position of the
      given rectangle if the size is changed, so that the actual position
      remains as expected by the client.
  21. 06 Jan, 2017 1 commit
    • Jonas Ådahl's avatar
      wayland: Handle subsurface as popup parent · 5bae71f8
      Jonas Ådahl authored
      When a subsurface is used as a parent of a popup, GDK needs to traverse
      up to the transient-for as the next parent, to properly find the parent
      used by the popup positioner. This is because the parent of a popup
      must always either be an xdg_popup or an xdg_surface, but traversing
      the "parent" (in GDK terms) upwards from a subsurface will end up on
      the fake root window before we hit the actual parent (in Wayland terms).
  22. 15 Dec, 2016 1 commit
    • Olivier Fourdan's avatar
      wayland: apply empty input shape on parent commit · 78f8f236
      Olivier Fourdan authored
      For subsurfaces, the new state which includes the input shape is not
      applied by the compositor if the subsurface is in effective synchronous
      So we need to apply the input shape once parent surface is in effective
      desynchronized mode, which is when it's committed, otherwise the input
      shape may never be applied if the widget is not using being_paint() /
      end_paint() to draw on its subsurface, like clutter does.
      We do that only for empty input shape as those won't need update when
      the subsurface is resized, for all other non-empty input shape, the
      client still has to use begin_paint()/end_paint() for the input shape to
      be applied.
  23. 24 Nov, 2016 1 commit
  24. 18 Nov, 2016 1 commit
  25. 03 Nov, 2016 1 commit
    • Olivier Fourdan's avatar
      wayland: check valid pending cairo surface · 209e01fd
      Olivier Fourdan authored
      gdk_wayland_window_attach_image() is normally called from
      gdk_window_end_paint() to notify the compositor of newly staged drawing.
      If any of the drawing code inadvertently dispatches the wayland event
      loop (for instance with a gdk_flush() call), then it's possible that by
      the time gdk_window_end_paint() is called, the staged drawing is already
      This commit bypasses the attach_image call in scenarios where the staged
      drawing is prematurely dropped.
  26. 20 Oct, 2016 2 commits
    • Matthias Clasen's avatar
      Deprecate to-be-removed screen API · 61fc7ddd
      Matthias Clasen authored
      GTK+ 4 is removing the monitor-related screen APIs. We should
      deprecate them in 3.22 so people know to port away from them.
    • Carlos Garnacho's avatar
      wayland: Allow grabless xdg_popups · 2dfaae67
      Carlos Garnacho authored
      xdg_shell v6 allows grabless popups, whose behavior is not that
      different from override redirect windows with no grab to take
      keyboard input (and pointer events outside).
      This means we can relax the requirement to have a grab before
      creating an xdg_popup. The warning is still useful to have so
      people stop relying on gdk_window_show();gdk_device_grab() being
      an ok pattern to popup a window, it's been moved to wayland
      implementation of gdk_device_grab() instead, so we warn if trying
      to grab a GDK_WINDOW_TEMP window that's already visible.
  27. 30 Sep, 2016 1 commit
  28. 28 Sep, 2016 2 commits
    • Gustavo Noronha Silva's avatar
      wayland: always sync state after a frame is painted · 7292b035
      Gustavo Noronha Silva authored
      Opaque region, margin and input region were only being synced when a cairo
      paint happened. That caused GL paints to sometimes end up with bad state.
      Move calls to sync state to gdk_window_impl_wayland_end_paint.
    • Olivier Fourdan's avatar
      wayland: Avoid negative size constraints · dbd0923b
      Olivier Fourdan authored
      Setting the shadow width earlier as done with commit 4cb1b964 to address
      bug 771561 proved to cause unexpected side effects on size_allocate
      signal propagation.
      As the window is sized correctly earlier, the size_allocate signal is
      not emitted again in gtk_widget_size_allocate_with_baseline() which
      prevents clutter-gtk from relocating its child widget correctly.
      To avoid this issue, revert commit 4cb1b964 but make sure the values
      passed as min and max size is never negative in Wayland as this is a
      protocol error.
      With this, the min/max size will be wrong for a short amount of time,
      during the state transition, until the shadow width is updated from
      This approach is much safer and less intrusive than changing the
      size_allocate logic in gtk.
      This reverts commit 4cb1b964.
      Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=771915
  29. 14 Sep, 2016 2 commits