GNOME Bugzilla – Bug 756202
on wayland, gtk-window-present does not raise the window
Last modified: 2017-08-26 20:21:49 UTC
When using gnome-builder, if I were to create a new project while in an existing one, gnome-builder creates a new window underneath the present one. The gtk call was gtk-window-present which docs say should raise the window. Unfortunately this doesn't happen in Wayland. I verified that the correct behavior happens under X.
Sri: Setting the Version field is generally welcome.
Done. My apologies.
This has a reasonably broad impact in general use - clicking links in an email doesn't raise the Ephy window, Send To in Nautilus doesn't raise the compose window, etc.
If you look at the GTK+ sources: static void gdk_window_wayland_raise (GdkWindow *window) { } static void gdk_wayland_window_focus (GdkWindow *window, guint32 timestamp) { } So this requires xdg-shell additions.
Wayland backend is now default in GNOME and user experience is always broken due to this bug. This really needs to be fixed!
(In reply to Cédric Bellegarde from comment #5) > Wayland backend is now default in GNOME and user experience is always broken > due to this bug. This really needs to be fixed! While I agree this is bad - which backend is default is a function of your distro and how that sets things up by default, not GNOME as a whole.
(In reply to Daniel Boles from comment #6) > While I agree this is bad - which backend is default is a function of your > distro and how that sets things up by default, not GNOME as a whole. Well, if a distro uses upstream unmodified, it will default to the wayland session. That said, comment #4 no longer holds - there *is* now protocol to present a window on wayland, and GTK+ does implement it, but it is not always working (see dup'ed report). *** This bug has been marked as a duplicate of bug 766284 ***
(In reply to Florian Müllner from comment #7) > That said, comment #4 no longer holds - there *is* now protocol to present a > window on wayland, and GTK+ does implement it, but it is not always working > (see dup'ed report). I assumed that because raise() [and lower()] is not implemented, that ultimately present() could not do much useful. But maybe I'm wrong.
(In reply to Daniel Boles from comment #8) > I assumed that because raise() [and lower()] is not implemented, that > ultimately present() could not do much useful. But maybe I'm wrong. https://git.gnome.org//browse/gtk+/tree/gtk/gtkwindow.c#n9491 uses focus(), not raise().