diff options
author | Matthias Clasen <maclas@gmx.de> | 2004-01-27 00:49:03 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2004-01-27 00:49:03 +0000 |
commit | 519a586ac4056a9dad0119f08f2e2d8600bd5e33 (patch) | |
tree | 22dce31b61b8f5e8bc50b5aafb18e6d6f324182e /gtk/gtkmenu.c | |
parent | ae395158daade6f07fd3a9c73952fc1128a76670 (diff) | |
download | gtk+-519a586ac4056a9dad0119f08f2e2d8600bd5e33.tar.gz |
Make menus work better on Xinerama (#126150):
Tue Jan 27 01:46:54 2004 Matthias Clasen <maclas@gmx.de>
Make menus work better on Xinerama (#126150):
* gtk/gtkmenuitem.c (gtk_menu_item_position_menu): Calculate the
monitor_num on the screen of the menu, not of the attach widget.
* gtk/gtkmenu.c (menu_change_screen): Forget the stored monitor_num.
(gtk_menu_window_size_request): Remember the monitor_num.
Diffstat (limited to 'gtk/gtkmenu.c')
-rw-r--r-- | gtk/gtkmenu.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c index 86e4deafe9..15ad9743f5 100644 --- a/gtk/gtkmenu.c +++ b/gtk/gtkmenu.c @@ -696,11 +696,8 @@ gtk_menu_window_size_request (GtkWidget *window, { GdkScreen *screen = gtk_widget_get_screen (window); GdkRectangle monitor; - gint monitor_num; - monitor_num = gdk_screen_get_monitor_at_point (screen, - private->x, private->y); - gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor); + gdk_screen_get_monitor_geometry (screen, private->monitor_num, &monitor); if (private->y + requisition->height > monitor.y + monitor.height) requisition->height = monitor.y + monitor.height - private->y; @@ -819,6 +816,8 @@ static void menu_change_screen (GtkMenu *menu, GdkScreen *new_screen) { + GtkMenuPrivate *private = gtk_menu_get_private (menu); + if (menu->torn_off) { gtk_window_set_screen (GTK_WINDOW (menu->tearoff_window), new_screen); @@ -826,6 +825,7 @@ menu_change_screen (GtkMenu *menu, } gtk_window_set_screen (GTK_WINDOW (menu->toplevel), new_screen); + private->monitor_num = -1; } static void |