From f6b3f0bfc791e117b60b2c8407ea38ff4d887407 Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Thu, 15 May 2014 17:14:26 -0400 Subject: [PATCH] wayland: Clean up function to find the input seat --- gdk/wayland/gdkwindow-wayland.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c index aaab00aab8..9d04aecdfa 100644 --- a/gdk/wayland/gdkwindow-wayland.c +++ b/gdk/wayland/gdkwindow-wayland.c @@ -993,7 +993,6 @@ gdk_wayland_window_create_xdg_popup (GdkWindow *window, static struct wl_seat * find_grab_input_seat (GdkWindow *window, GdkWindow *transient_for) { - struct wl_seat *grab_input_seat = NULL; GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl); GdkWindowImplWayland *tmp_impl; @@ -1001,20 +1000,20 @@ find_grab_input_seat (GdkWindow *window, GdkWindow *transient_for) * the popup window setup - so this relies on GTK+ taking the * grab before showing the popup window. */ - grab_input_seat = impl->grab_input_seat; + if (impl->grab_input_seat) + return impl->grab_input_seat; - tmp_impl = GDK_WINDOW_IMPL_WAYLAND (transient_for->impl); - while (!grab_input_seat) + while (transient_for) { - grab_input_seat = tmp_impl->grab_input_seat; + tmp_impl = GDK_WINDOW_IMPL_WAYLAND (transient_for->impl); - if (tmp_impl->transient_for) - tmp_impl = GDK_WINDOW_IMPL_WAYLAND (tmp_impl->transient_for->impl); - else - break; + if (tmp_impl->grab_input_seat) + return tmp_impl->grab_input_seat; + + transient_for = tmp_impl->transient_for; } - return grab_input_seat; + return NULL; } static void