[maemo-commits] [maemo-commits] r19305 - in projects/haf/trunk/gtk+: . gtk
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Tue Sep 8 11:53:15 EEST 2009
- Previous message: [maemo-commits] r19304 - projects/haf/trunk/clutter0.8/debian
- Next message: [maemo-commits] r19306 - in projects/haf/trunk/gtk+: . gdk-pixbuf
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: kris Date: 2009-09-08 11:52:40 +0300 (Tue, 08 Sep 2009) New Revision: 19305 Modified: projects/haf/trunk/gtk+/ChangeLog projects/haf/trunk/gtk+/gtk/gtkmenu.c Log: 2009-09-08 Kristian Rietveld <kris at lanedo.com> Fixes: NB#129022 - CSM is not proper while rotating from portrait mode to landscape mode, viceversa * gtk/gtkmenu.c: connect to GdkScreen::size-changed and reposition the menu in the signal handler, (menu_change_screen): re-connect the signal. Modified: projects/haf/trunk/gtk+/ChangeLog =================================================================== --- projects/haf/trunk/gtk+/ChangeLog 2009-09-08 08:03:05 UTC (rev 19304) +++ projects/haf/trunk/gtk+/ChangeLog 2009-09-08 08:52:40 UTC (rev 19305) @@ -1,3 +1,12 @@ +2009-09-08 Kristian Rietveld <kris at lanedo.com> + + Fixes: NB#129022 - CSM is not proper while rotating from portrait mode + to landscape mode, viceversa + + * gtk/gtkmenu.c: connect to GdkScreen::size-changed and reposition the + menu in the signal handler, + (menu_change_screen): re-connect the signal. + 2009-09-07 Kristian Rietveld <kris at lanedo.com> Fixes: NB#137421 - Context menu opening takes too long time Modified: projects/haf/trunk/gtk+/gtk/gtkmenu.c =================================================================== --- projects/haf/trunk/gtk+/gtk/gtkmenu.c 2009-09-08 08:03:05 UTC (rev 19304) +++ projects/haf/trunk/gtk+/gtk/gtkmenu.c 2009-09-08 08:52:40 UTC (rev 19305) @@ -113,6 +113,9 @@ gboolean context_menu; int popup_pointer_x; int popup_pointer_y; + + /* Handling GdkScreen::size-changed */ + guint size_changed_id; #endif /* MAEMO_CHANGES */ }; @@ -268,6 +271,9 @@ #ifdef MAEMO_CHANGES static gint context_menu_counter = 0; + +static void menu_screen_size_changed (GdkScreen *screen, + GtkMenu *menu); #endif static GtkMenuPrivate * @@ -1098,6 +1104,11 @@ priv->context_menu = FALSE; priv->popup_pointer_x = -1; priv->popup_pointer_y = -1; + + priv->size_changed_id = + g_signal_connect (gtk_widget_get_screen (menu->toplevel), "size_changed", + G_CALLBACK (menu_screen_size_changed), + menu); #endif /* MAEMO_CHANGES */ priv->have_layout = FALSE; @@ -1158,10 +1169,28 @@ priv->title = NULL; } +#ifdef MAEMO_CHANGES + if (priv->size_changed_id) + { + g_signal_handler_disconnect (gtk_widget_get_screen (GTK_WIDGET (object)), + priv->size_changed_id); + priv->size_changed_id = 0; + } +#endif /* MAEMO_CHANGES */ + GTK_OBJECT_CLASS (gtk_menu_parent_class)->destroy (object); } +#ifdef MAEMO_CHANGES static void +menu_screen_size_changed (GdkScreen *screen, + GtkMenu *menu) +{ + gtk_menu_reposition (menu); +} +#endif /* MAEMO_CHANGES */ + +static void menu_change_screen (GtkMenu *menu, GdkScreen *new_screen) { @@ -1173,6 +1202,15 @@ return; } +#ifdef MAEMO_CHANGES + if (private->size_changed_id) + { + g_signal_handler_disconnect (gtk_widget_get_screen (GTK_WIDGET (menu)), + private->size_changed_id); + private->size_changed_id = 0; + } +#endif /* MAEMO_CHANGES */ + if (menu->torn_off) { gtk_window_set_screen (GTK_WINDOW (menu->tearoff_window), new_screen); @@ -1181,6 +1219,12 @@ gtk_window_set_screen (GTK_WINDOW (menu->toplevel), new_screen); private->monitor_num = -1; + +#ifdef MAEMO_CHANGES + private->size_changed_id = g_signal_connect (new_screen, "size_changed", + G_CALLBACK (menu_screen_size_changed), + menu); +#endif /* MAEMO_CHANGES */ } static void
- Previous message: [maemo-commits] r19304 - projects/haf/trunk/clutter0.8/debian
- Next message: [maemo-commits] r19306 - in projects/haf/trunk/gtk+: . gdk-pixbuf
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]