summaryrefslogtreecommitdiff
path: root/gdk/wayland/gdkwindow-wayland.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdk/wayland/gdkwindow-wayland.c')
-rw-r--r--gdk/wayland/gdkwindow-wayland.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c
index 2d7c42bd7a..fffe58e397 100644
--- a/gdk/wayland/gdkwindow-wayland.c
+++ b/gdk/wayland/gdkwindow-wayland.c
@@ -3785,10 +3785,20 @@ gdk_wayland_window_focus (GdkWindow *window,
GdkWaylandDisplay *display_wayland =
GDK_WAYLAND_DISPLAY (gdk_window_get_display (window));
- if (display_wayland->gtk_shell_version >= 3)
+ if (display_wayland->startup_notification_id)
{
- gtk_surface1_request_focus (impl->display_server.gtk_surface,
- display_wayland->startup_notification_id);
+ if (display_wayland->xdg_activation)
+ {
+ xdg_activation_v1_activate (display_wayland->xdg_activation,
+ display_wayland->startup_notification_id,
+ impl->display_server.wl_surface);
+ }
+ else if (display_wayland->gtk_shell_version >= 3)
+ {
+ gtk_surface1_request_focus (impl->display_server.gtk_surface,
+ display_wayland->startup_notification_id);
+ }
+
g_clear_pointer (&display_wayland->startup_notification_id, g_free);
}
}