From 8067f6b88605e4a5823735c690cb059103a88e6f Mon Sep 17 00:00:00 2001 From: Rui Matos Date: Sat, 5 Nov 2011 01:36:52 -0400 Subject: [PATCH] x11: Fix window manager change detection Since the wmspec_check_window doesn't have a corresponding GdkWindow we can't rely on the get_event_window() return value to get the XID from. Just use the XID from the XEvent directly. https://bugzilla.gnome.org/show_bug.cgi?id=662953 --- gdk/x11/gdkdisplay-x11.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c index 95b22f655a..d71e8caefd 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -385,7 +385,6 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator, GdkToplevelX11 *toplevel = NULL; GdkX11Display *display_x11 = GDK_X11_DISPLAY (display); gboolean return_val; - Window xwindow = None; /* Find the GdkWindow that this event relates to. * Basically this means substructure events @@ -405,7 +404,6 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator, x11_screen = GDK_X11_SCREEN (screen); toplevel = _gdk_x11_window_get_toplevel (window); window_impl = GDK_WINDOW_IMPL_X11 (window->impl); - xwindow = GDK_WINDOW_XID (window); g_object_ref (window); } @@ -432,7 +430,7 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator, screen = gdk_display_get_screen (display, i); x11_screen = GDK_X11_SCREEN (screen); - if (x11_screen->wmspec_check_window == xwindow) + if (x11_screen->wmspec_check_window == xevent->xdestroywindow.window) { x11_screen->wmspec_check_window = None; x11_screen->last_wmspec_check_time = 0;