[maemo-commits] [maemo-commits] r15243 - in projects/haf/trunk/hildon-1: . examples src
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Mon Mar 3 10:00:36 EET 2008
- Previous message: [maemo-commits] r15242 - in projects/haf/trunk/hildon-1: . debian src
- Next message: [maemo-commits] r15244 - in projects/haf/trunk/hildon-1: . src
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: herzi Date: 2008-03-03 10:00:31 +0200 (Mon, 03 Mar 2008) New Revision: 15243 Modified: projects/haf/trunk/hildon-1/ChangeLog projects/haf/trunk/hildon-1/examples/hildon-window-menu-example.c projects/haf/trunk/hildon-1/src/hildon-window.c Log: 2008-03-03 Sven Herzberg <sven at imendio.com> Fixes: MB#1220: HildonWindow should take GtkMenu accel_group into account * examples/hildon-window-menu-example.c: (main): extended the window menu example to serve as a testcase for automatically added accelerator groups, too * src/hildon-window.c: (hildon_window_add_accel_group), (hildon_window_set_menu): added patch by Tommi Komulainen Modified: projects/haf/trunk/hildon-1/ChangeLog =================================================================== --- projects/haf/trunk/hildon-1/ChangeLog 2008-03-03 07:22:36 UTC (rev 15242) +++ projects/haf/trunk/hildon-1/ChangeLog 2008-03-03 08:00:31 UTC (rev 15243) @@ -1,5 +1,15 @@ 2008-03-03 Sven Herzberg <sven at imendio.com> + Fixes: MB#1220: HildonWindow should take GtkMenu accel_group into account + + * examples/hildon-window-menu-example.c: (main): extended the window + menu example to serve as a testcase for automatically added + accelerator groups, too + * src/hildon-window.c: (hildon_window_add_accel_group), + (hildon_window_set_menu): added patch by Tommi Komulainen + +2008-03-03 Sven Herzberg <sven at imendio.com> + Fixes: MB#1276: wrong allocators used in hildon_window_get_borders * src/hildon-window.c: (hildon_window_get_borders): don't imply any Modified: projects/haf/trunk/hildon-1/examples/hildon-window-menu-example.c =================================================================== --- projects/haf/trunk/hildon-1/examples/hildon-window-menu-example.c 2008-03-03 07:22:36 UTC (rev 15242) +++ projects/haf/trunk/hildon-1/examples/hildon-window-menu-example.c 2008-03-03 08:00:31 UTC (rev 15243) @@ -40,13 +40,19 @@ hildon_program_add_window (program, HILDON_WINDOW (window)); GtkMenu *menu = GTK_MENU (gtk_menu_new ()); - GtkWidget *menu_item = gtk_menu_item_new_with_label ("Test item"); + GtkAccelGroup *group = gtk_accel_group_new (); + gtk_menu_set_accel_group (menu, group); + GtkWidget *menu_item = gtk_image_menu_item_new_from_stock (GTK_STOCK_QUIT, + gtk_menu_get_accel_group (menu)); gtk_widget_show (menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); hildon_window_set_main_menu (HILDON_WINDOW (window), menu); - g_signal_connect (G_OBJECT (window), "delete_event", G_CALLBACK (gtk_main_quit), NULL); + g_signal_connect_swapped (menu_item, "activate", + G_CALLBACK (gtk_object_destroy), window); + + g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (gtk_main_quit), NULL); gtk_widget_show_all (GTK_WIDGET (window)); gtk_main (); Modified: projects/haf/trunk/hildon-1/src/hildon-window.c =================================================================== --- projects/haf/trunk/hildon-1/src/hildon-window.c 2008-03-03 07:22:36 UTC (rev 15242) +++ projects/haf/trunk/hildon-1/src/hildon-window.c 2008-03-03 08:00:31 UTC (rev 15243) @@ -1817,6 +1817,24 @@ return GTK_MENU (priv->menu); } +/* Since we've been asking developers to call gtk_window_add_accel_group() + * themselves, do not trigger criticals by trying it again. + */ +static void +hildon_window_add_accel_group (HildonWindow *self, + GtkAccelGroup *accel_group) +{ + GSList *groups, *l; + + groups = gtk_accel_groups_from_object (G_OBJECT (self)); + for (l = groups; l != NULL; l = l->next) + if (l->data == (gpointer)accel_group) + /* Maybe print a warning here? */ + return; + + gtk_window_add_accel_group (GTK_WINDOW (self), accel_group); +} + /** * hildon_window_set_main_menu: * @self: A #HildonWindow @@ -1835,6 +1853,7 @@ GtkMenu * menu) { HildonWindowPrivate *priv; + GtkAccelGroup *accel_group; g_return_if_fail (HILDON_IS_WINDOW (self)); @@ -1842,6 +1861,10 @@ if (priv->menu != NULL) { + accel_group = gtk_menu_get_accel_group (GTK_MENU (priv->menu)); + if (accel_group != NULL) + gtk_window_remove_accel_group (GTK_WINDOW (self), accel_group); + gtk_menu_detach (GTK_MENU (priv->menu)); g_object_unref (priv->menu); } @@ -1852,6 +1875,10 @@ gtk_widget_set_name (priv->menu, "menu_force_with_corners"); gtk_menu_attach_to_widget (GTK_MENU (priv->menu), GTK_WIDGET (self), &detach_menu_func); g_object_ref (GTK_MENU (priv->menu)); + + accel_group = gtk_menu_get_accel_group (GTK_MENU (priv->menu)); + if (accel_group != NULL) + hildon_window_add_accel_group (self, accel_group); } }
- Previous message: [maemo-commits] r15242 - in projects/haf/trunk/hildon-1: . debian src
- Next message: [maemo-commits] r15244 - in projects/haf/trunk/hildon-1: . src
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]