[maemo-commits] [maemo-commits] r12678 - in projects/haf/trunk/gtk+: . gtk

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Fri Jul 6 14:53:42 EEST 2007
Author: tko
Date: 2007-07-06 14:53:37 +0300 (Fri, 06 Jul 2007)
New Revision: 12678

Modified:
   projects/haf/trunk/gtk+/ChangeLog
   projects/haf/trunk/gtk+/gtk/gtkmenushell.c
Log:
Avoid infinite recursion. Fix memory leak.

2007-07-06  Tommi Komulainen  <tommi.komulainen at nokia.com>

	* gtk/gtkmenushell.c (gtk_menu_shell_insensitive_press): Avoid
	infinite recursion by not forwarding insensitive press events back to
	ourself. Fix memory leak. NB#53311


Modified: projects/haf/trunk/gtk+/ChangeLog
===================================================================
--- projects/haf/trunk/gtk+/ChangeLog	2007-07-06 10:34:20 UTC (rev 12677)
+++ projects/haf/trunk/gtk+/ChangeLog	2007-07-06 11:53:37 UTC (rev 12678)
@@ -1,3 +1,9 @@
+2007-07-06  Tommi Komulainen  <tommi.komulainen at nokia.com>
+
+	* gtk/gtkmenushell.c (gtk_menu_shell_insensitive_press): Avoid
+	infinite recursion by not forwarding insensitive press events back to
+	ourself. Fix memory leak. NB#53311
+
 2007-07-04  Xan Lopez  <xan.lopez at nokia.com>
 
 	* gtk/gtkentrycompletion.c (_gtk_entry_completion_popup),

Modified: projects/haf/trunk/gtk+/gtk/gtkmenushell.c
===================================================================
--- projects/haf/trunk/gtk+/gtk/gtkmenushell.c	2007-07-06 10:34:20 UTC (rev 12677)
+++ projects/haf/trunk/gtk+/gtk/gtkmenushell.c	2007-07-06 11:53:37 UTC (rev 12678)
@@ -205,12 +205,20 @@
 static void
 gtk_menu_shell_insensitive_press (GtkWidget *widget)
 {
-  GtkMenuShell *menu_shell;
   GdkEvent *event;
+
   g_return_if_fail (GTK_IS_MENU_SHELL (widget));
-  menu_shell = GTK_MENU_SHELL (widget);
+
   event = gtk_get_current_event ();
-  gtk_widget_insensitive_press (gtk_get_event_widget (event));
+  if (event)
+    {
+      GtkWidget *event_widget;
+
+      event_widget = gtk_get_event_widget (event);
+      if (event_widget != widget)
+	gtk_widget_insensitive_press (event_widget);
+      gdk_event_free (event);
+    }
 }
 #endif /* MAEMO_CHANGES */
 


More information about the maemo-commits mailing list