[maemo-commits] [maemo-commits] r14733 - in projects/haf/trunk/gtk+: . gtk
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Wed Nov 7 16:43:07 EET 2007
- Previous message: [maemo-commits] r14732 - in projects/haf/trunk/hildon-desktop: . libhildondesktop
- Next message: [maemo-commits] r14734 - projects/haf/tags/osso-af-startup
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: mitch Date: 2007-11-07 16:43:02 +0200 (Wed, 07 Nov 2007) New Revision: 14733 Modified: projects/haf/trunk/gtk+/ChangeLog projects/haf/trunk/gtk+/gtk/gtkmenu.c Log: 2007-11-07 Michael Natterer <mitch at imendio.com> Merge from upstream: * gtk/gtkmenu.c (gtk_menu_popup): call gdk_flush() after showing the menu so we can definitely grab on it. Grab failure found by Xan Lopez. Change above merge to use gtk_widget_show_now() instead because maemo menus are toplevels not popups. Remove debugging output about failed grabs. Modified: projects/haf/trunk/gtk+/ChangeLog =================================================================== --- projects/haf/trunk/gtk+/ChangeLog 2007-11-07 12:15:20 UTC (rev 14732) +++ projects/haf/trunk/gtk+/ChangeLog 2007-11-07 14:43:02 UTC (rev 14733) @@ -1,3 +1,15 @@ +2007-11-07 Michael Natterer <mitch at imendio.com> + + Merge from upstream: + + * gtk/gtkmenu.c (gtk_menu_popup): call gdk_flush() after showing + the menu so we can definitely grab on it. Grab failure found by + Xan Lopez. + + Change above merge to use gtk_widget_show_now() instead because + maemo menus are toplevels not popups. Remove debugging output + about failed grabs. + 2007-11-02 Xan Lopez <xan.lopez at nokia.com> * gdk/gdkdisplay.c: Modified: projects/haf/trunk/gtk+/gtk/gtkmenu.c =================================================================== --- projects/haf/trunk/gtk+/gtk/gtkmenu.c 2007-11-07 12:15:20 UTC (rev 14732) +++ projects/haf/trunk/gtk+/gtk/gtkmenu.c 2007-11-07 14:43:02 UTC (rev 14733) @@ -1307,14 +1307,12 @@ return TRUE; else { - g_warning ("popup_grab_on_window: couldn't grab keyboard"); gdk_display_pointer_ungrab (gdk_drawable_get_display (window), activate_time); return FALSE; } } - g_warning ("popup_grab_on_window: couldn't grab pointer"); return FALSE; } @@ -1461,7 +1459,7 @@ if (xgrab_shell && xgrab_shell != widget) { if (popup_grab_on_window (xgrab_shell->window, activate_time, grab_keyboard)) - GTK_MENU_SHELL (xgrab_shell)->have_xgrab = TRUE; + GTK_MENU_SHELL (xgrab_shell)->have_xgrab = TRUE; #ifdef MAEMO_CHANGES /* Maemo: enable rc-file theming */ @@ -1500,7 +1498,6 @@ */ menu_shell->parent_menu_shell = NULL; menu_grab_transfer_window_destroy (menu); - g_warning ("%gtk_menu_popup: exiting because we don't have grab"); return; } @@ -1605,8 +1602,22 @@ /* Once everything is set up correctly, map the toplevel window on the screen. */ +#ifndef MAEMO_CHANGES gtk_widget_show (menu->toplevel); + /* flush the X event queue for the popup to become realized and + * mapped, since grabbing requires a mapped window. (this only works + * for popups, regular windows need gtk_widget_show_now() to sync + * with window manager interaction). + */ + gdk_flush (); +#else + /* on maemo, menus are ordinary toplevels, so gdk_flush() will not work. + * do as above comment suggests instead. + */ + gtk_widget_show_now (menu->toplevel); +#endif /* MAEMO_CHANGES */ + if (xgrab_shell == widget) popup_grab_on_window (widget->window, activate_time, grab_keyboard); /* Should always succeed */ gtk_grab_add (GTK_WIDGET (menu));
- Previous message: [maemo-commits] r14732 - in projects/haf/trunk/hildon-desktop: . libhildondesktop
- Next message: [maemo-commits] r14734 - projects/haf/tags/osso-af-startup
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]