[gtk+/broadway: 66/71] [broadway] Don't have mouse_in_toplevel point to hidden or destroyed window



commit c1a35afa5fc6b5e0dc8b6ecbe9202028c13aeb6a
Author: Alexander Larsson <alexl redhat com>
Date:   Thu Nov 25 20:07:26 2010 +0100

    [broadway] Don't have mouse_in_toplevel point to hidden or destroyed window

 gdk/broadway/gdkwindow-broadway.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)
---
diff --git a/gdk/broadway/gdkwindow-broadway.c b/gdk/broadway/gdkwindow-broadway.c
index 818ffac..eb9c409 100644
--- a/gdk/broadway/gdkwindow-broadway.c
+++ b/gdk/broadway/gdkwindow-broadway.c
@@ -266,6 +266,13 @@ gdk_window_impl_broadway_finalize (GObject *object)
   wrapper = (GdkWindowObject*) draw_impl->wrapper;
 
   display_broadway = GDK_DISPLAY_BROADWAY (gdk_window_get_display (draw_impl->wrapper));
+
+  if (display_broadway->mouse_in_toplevel == GDK_WINDOW (wrapper))
+    {
+      /* TODO: Send leave + enter event, update cursors, etc */
+      display_broadway->mouse_in_toplevel = NULL;
+    }
+
   g_hash_table_remove (display_broadway->id_ht, GINT_TO_POINTER(window_impl->id));
 
   if (window_impl->cursor)
@@ -495,6 +502,12 @@ gdk_window_broadway_hide (GdkWindow *window)
       queue_dirty_flush (display_broadway);
     }
 
+  if (display_broadway->mouse_in_toplevel == window)
+    {
+      /* TODO: Send leave + enter event, update cursors, etc */
+      display_broadway->mouse_in_toplevel = NULL;
+    }
+
   _gdk_window_clear_update_area (window);
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]