https://bugzilla.gnome.org/show_bug.cgi?id=759738
Bug ID: 759738
Summary: wayland: use a subsurface for GDK_WINDOW_TEMP if
attached to a toplevel
Classification: Platform
Product: gtk+
Version: 3.19.x
OS: Linux
Status: NEW
Severity: normal
Priority: Normal
Component: Backend: Wayland
Assignee: [email protected]
Reporter: [email protected]
QA Contact: [email protected]
CC: [email protected], [email protected]
GNOME version: ---
On X11, some application (e.g. gucharmap) use GTK_WINDOW_POPUP to display some
additional information (like the zoom window, see bug 759229 for example).
On Wayland, this will be translated by default as a regular surface which will
take receive focus and cannot be placed programatically by the application.
Best way to get on Wayland a behaviour similar to overide redirect on X11 is to
use subsurface, but gtk+ doesn't make it particularly easy to achieve this
(there is no gtk+ API to request a subsurface because this is a Wayalnd concept
and threrefore belongs to the gdk backend).
Currently, easiest way is to set the window type to "tooltip" as this will be
translated by default as a subsurface on Wayland (if the parent is set), but
that's a hack and it's a clear misuse of the intended type.
Another possibility is to subclass gtkwindow to override the realize method and
set the gdk window type to GDK_WINDOW_SUBSURFACE, but that means that the
application needs to test the underlying windowing system (there is no
GDK_WINDOW_SUBSURFACE outside of Wayland) and it also adds a lot of complexity
for a simple and quite common use case.
Ideally, the gdk wayland backend should use a subsurface when possible, ie with
GDK_WINDOW_TEMP with a parent (transient_for) set and not when an xdg-popup is
to be used (e.g. menus).
That would make the fix for Wayland a one liner in the applications, just have
to set the transient_for to the toplevel and gdk would automatically prefer a
subsurface that can be positioned at will by the application, just like on X11.
Patch to follow.
--
You are receiving this mail because:
You are on the CC list for the bug._______________________________________________
wayland-bugs mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-bugs