[maemo-commits] [maemo-commits] r8363 - in projects/haf/trunk/gtk+: . gtk
From: www-data at stage.maemo.org www-data at stage.maemo.orgDate: Mon Nov 27 18:07:37 EET 2006
- Previous message: [maemo-commits] r8362 - in projects/haf/trunk/gtk+: . gdk/x11
- Next message: [maemo-commits] r8364 - in projects/haf/trunk/maemo-af-desktop: . libhildonmenu
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: tko Date: 2006-11-27 18:07:36 +0200 (Mon, 27 Nov 2006) New Revision: 8363 Modified: projects/haf/trunk/gtk+/ChangeLog projects/haf/trunk/gtk+/gtk/gtkwidget.c Log: Update the extension events on realized widgets 2006-11-27 Tommi Komulainen <tommi.komulainen at nokia.com> * gtk/gtkwidget.c (gtk_widget_set_extension_events_internal): Accept NULL as window list in which case the list is taken from the widget. (gtk_widget_realize): simplify accordingly (gtk_widget_set_extension_events): Update the extension events on GdkWindows if the widget is already realized. Modified: projects/haf/trunk/gtk+/ChangeLog =================================================================== --- projects/haf/trunk/gtk+/ChangeLog 2006-11-27 15:43:40 UTC (rev 8362) +++ projects/haf/trunk/gtk+/ChangeLog 2006-11-27 16:07:36 UTC (rev 8363) @@ -1,5 +1,13 @@ 2006-11-27 Tommi Komulainen <tommi.komulainen at nokia.com> + * gtk/gtkwidget.c (gtk_widget_set_extension_events_internal): Accept + NULL as window list in which case the list is taken from the widget. + (gtk_widget_realize): simplify accordingly + (gtk_widget_set_extension_events): Update the extension events on + GdkWindows if the widget is already realized. + +2006-11-27 Tommi Komulainen <tommi.komulainen at nokia.com> + * gdk/x11/gdkinput.c (gdk_input_set_extension_events): Stop leaking memory when called multiple times to enable extension events. Get the root relative geometry in case we're called after ConfigureNotify. Modified: projects/haf/trunk/gtk+/gtk/gtkwidget.c =================================================================== --- projects/haf/trunk/gtk+/gtk/gtkwidget.c 2006-11-27 15:43:40 UTC (rev 8362) +++ projects/haf/trunk/gtk+/gtk/gtkwidget.c 2006-11-27 16:07:36 UTC (rev 8363) @@ -2484,8 +2484,19 @@ GdkExtensionMode mode, GList *window_list) { + GList *free_list = NULL; GList *l; + if (window_list == NULL) + { + if (!GTK_WIDGET_NO_WINDOW (widget)) + window_list = g_list_prepend (NULL, widget->window); + else + window_list = gdk_window_get_children (widget->window); + + free_list = window_list; + } + for (l = window_list; l != NULL; l = l->next) { GdkWindow *window = l->data; @@ -2501,10 +2512,14 @@ mode); children = gdk_window_get_children (window); - gtk_widget_set_extension_events_internal (widget, mode, children); + if (children) + gtk_widget_set_extension_events_internal (widget, mode, children); g_list_free (children); } } + + if (free_list) + g_list_free (free_list); } /** * gtk_widget_realize: @@ -2571,17 +2586,7 @@ mode = gtk_widget_get_extension_events (widget); if (mode != GDK_EXTENSION_EVENTS_NONE) - { - GList *window_list; - - if (!GTK_WIDGET_NO_WINDOW (widget)) - window_list = g_list_prepend (NULL, widget->window); - else - window_list = gdk_window_get_children (widget->window); - - gtk_widget_set_extension_events_internal (widget, mode, window_list); - g_list_free (window_list); - } + gtk_widget_set_extension_events_internal (widget, mode, NULL); } } @@ -6150,7 +6155,10 @@ if (!modep) modep = g_new (GdkExtensionMode, 1); - + + if (GTK_WIDGET_REALIZED (widget)) + gtk_widget_set_extension_events_internal (widget, mode, NULL); + *modep = mode; g_object_set_qdata (G_OBJECT (widget), quark_extension_event_mode, modep); g_object_notify (G_OBJECT (widget), "extension-events");
- Previous message: [maemo-commits] r8362 - in projects/haf/trunk/gtk+: . gdk/x11
- Next message: [maemo-commits] r8364 - in projects/haf/trunk/maemo-af-desktop: . libhildonmenu
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]