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

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Thu Aug 2 13:10:04 EEST 2007
Author: mitch
Date: 2007-08-02 13:09:58 +0300 (Thu, 02 Aug 2007)
New Revision: 13002

Modified:
   projects/haf/trunk/gtk+/ChangeLog
   projects/haf/trunk/gtk+/gtk/gtkmenu.c
Log:
2007-08-02  Michael Natterer  <mitch at imendio.com>

	* gtk/gtkmenu.c (gtk_menu_key_press): added code that invokes
	accelerators on the window the menu is attached to so they work
	even when a menu is open. Based on a patch by Xan Lopez. Fixes
	NB#63378.



Modified: projects/haf/trunk/gtk+/ChangeLog
===================================================================
--- projects/haf/trunk/gtk+/ChangeLog	2007-08-02 08:43:31 UTC (rev 13001)
+++ projects/haf/trunk/gtk+/ChangeLog	2007-08-02 10:09:58 UTC (rev 13002)
@@ -1,3 +1,10 @@
+2007-08-02  Michael Natterer  <mitch at imendio.com>
+
+	* gtk/gtkmenu.c (gtk_menu_key_press): added code that invokes
+	accelerators on the window the menu is attached to so they work
+	even when a menu is open. Based on a patch by Xan Lopez. Fixes
+	NB#63378.
+
 2007-08-01  Michael Natterer  <mitch at imendio.com>
 
 	* gtk/gtkmenuitem.c (_gtk_menu_item_popup_submenu): sync with

Modified: projects/haf/trunk/gtk+/gtk/gtkmenu.c
===================================================================
--- projects/haf/trunk/gtk+/gtk/gtkmenu.c	2007-08-02 08:43:31 UTC (rev 13001)
+++ projects/haf/trunk/gtk+/gtk/gtkmenu.c	2007-08-02 10:09:58 UTC (rev 13002)
@@ -3122,7 +3122,35 @@
 	    }
 	}
     }
-  
+#ifdef MAEMO_CHANGES
+  else if (!can_change_accels)
+    {
+      GtkWidget *toplevel = gtk_menu_get_toplevel (widget);
+
+      if (toplevel)
+        {
+          GSList *accel_groups;
+          GSList *list;
+
+          accel_groups = gtk_accel_groups_from_object (G_OBJECT (toplevel));
+
+          for (list = accel_groups; list; list = list->next)
+            {
+              GtkAccelGroup *accel_group = list->data;
+
+              if (gtk_accel_group_query (accel_group, accel_key, accel_mods,
+                                         NULL))
+                {
+                  gtk_menu_shell_cancel (GTK_MENU_SHELL (widget));
+                  gtk_window_activate_key (GTK_WINDOW (toplevel), event);
+
+                  break;
+                }
+            }
+        }
+    }
+#endif /* MAEMO_CHANGES */
+
   return TRUE;
 }
 


More information about the maemo-commits mailing list