[maemo-commits] [maemo-commits] r9431 - in projects/haf/branches/gtk+/maemo-gtk-2-10: . gtk
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Mon Jan 29 17:05:17 EET 2007
- Previous message: [maemo-commits] r9430 - projects/haf/tags/osso-gnomevfs-extra
- Next message: [maemo-commits] r9432 - projects/haf/trunk/hildon-fm
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: mitch Date: 2007-01-29 17:05:15 +0200 (Mon, 29 Jan 2007) New Revision: 9431 Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkmenuitem.c Log: 2007-01-29 Michael Natterer <mitch at gimp.org> * gtk/gtkmenuitem.c: port over: open submenus on activation and don't open them on select. Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog =================================================================== --- projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog 2007-01-29 15:04:22 UTC (rev 9430) +++ projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog 2007-01-29 15:05:15 UTC (rev 9431) @@ -1,3 +1,8 @@ +2007-01-29 Michael Natterer <mitch at gimp.org> + + * gtk/gtkmenuitem.c: port over: open submenus on activation and + don't open them on select. + 2007-01-29 Michael Natterer <mitch at imendio.com> * gtk/gtkmenuitem.c: port over queueing a draw on the parent menu Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkmenuitem.c =================================================================== --- projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkmenuitem.c 2007-01-29 15:04:22 UTC (rev 9430) +++ projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkmenuitem.c 2007-01-29 15:05:15 UTC (rev 9431) @@ -71,6 +71,9 @@ static void gtk_real_menu_item_select (GtkItem *item); static void gtk_real_menu_item_deselect (GtkItem *item); +#ifdef MAEMO_CHANGES +static void gtk_real_menu_item_activate (GtkMenuItem *item); +#endif /* MAEMO_CHANGES */ static void gtk_real_menu_item_activate_item (GtkMenuItem *item); static void gtk_real_menu_item_toggle_size_request (GtkMenuItem *menu_item, gint *requisition); @@ -130,7 +133,11 @@ item_class->select = gtk_real_menu_item_select; item_class->deselect = gtk_real_menu_item_deselect; +#ifdef MAEMO_CHANGES + klass->activate = gtk_real_menu_item_activate; +#else klass->activate = NULL; +#endif /* MAEMO_CHANGES */ klass->activate_item = gtk_real_menu_item_activate_item; klass->toggle_size_request = gtk_real_menu_item_toggle_size_request; klass->toggle_size_allocate = gtk_real_menu_item_toggle_size_allocate; @@ -927,10 +934,13 @@ if (popup_delay > 0) { GdkEvent *event = gtk_get_current_event (); - + +#ifndef MAEMO_CHANGES menu_item->timer = g_timeout_add (popup_delay, gtk_menu_item_select_timeout, menu_item); +#endif /* !MAEMO_CHANGES */ + if (event && event->type != GDK_BUTTON_PRESS && event->type != GDK_ENTER_NOTIFY) @@ -991,7 +1001,50 @@ return TRUE; } +#ifdef MAEMO_CHANGES +/* This function exists only for opening submenus on + * activation. + */ +static void +gtk_real_menu_item_activate (GtkMenuItem *item) +{ + GdkEvent *event; + gint popup_delay; + g_return_if_fail (GTK_IS_MENU_ITEM (item)); + + if (!GTK_IS_MENU (item->submenu) || + GTK_WIDGET_VISIBLE (item->submenu)) + return; + + event = gtk_get_current_event (); + + /* Add a delay before opening a new menu */ + if (item->timer) + { + g_source_remove (item->timer); + item->timer = 0; + popup_delay = 0; + } + else + popup_delay = get_popup_delay (item); + + item->timer = g_timeout_add (popup_delay, + gtk_menu_item_select_timeout, + item); + + /* We don't want to select first item if the submenu + * is opened with mouse release because the selection + * would move straigh back under the cursor. + */ + if ((event == NULL) || (event->type != GDK_BUTTON_RELEASE)) + gtk_menu_shell_select_first (GTK_MENU_SHELL (item->submenu), TRUE); + + if (event) + gdk_event_free (event); +} +#endif /* MAEMO_CHANGES */ + static void gtk_real_menu_item_activate_item (GtkMenuItem *menu_item) { @@ -1014,9 +1067,12 @@ _gtk_menu_shell_activate (menu_shell); gtk_menu_shell_select_item (GTK_MENU_SHELL (widget->parent), widget); + +#ifndef MAEMO_CHANGES _gtk_menu_item_popup_submenu (widget); gtk_menu_shell_select_first (GTK_MENU_SHELL (menu_item->submenu), TRUE); +#endif /* !MAEMO_CHANGES */ } } }
- Previous message: [maemo-commits] r9430 - projects/haf/tags/osso-gnomevfs-extra
- Next message: [maemo-commits] r9432 - projects/haf/trunk/hildon-fm
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]