From b9a51f353064aceed3ac512bb7d4558fcf99d771 Mon Sep 17 00:00:00 2001 From: GMT 1998 Austin Donnelly Date: Sun, 1 Nov 1998 21:10:44 +0000 Subject: [PATCH] gtk/gtkoptionmenu.c make option menus work when some of the menuitems are Sun Nov 1 21:00:06 GMT 1998 Austin Donnelly * gtk/gtkoptionmenu.c * gtk/gtkmenushell.c: make option menus work when some of the menuitems are hidden - previously, option menu would popup too high. --- ChangeLog | 7 +++++++ ChangeLog.pre-2-0 | 7 +++++++ ChangeLog.pre-2-10 | 7 +++++++ ChangeLog.pre-2-2 | 7 +++++++ ChangeLog.pre-2-4 | 7 +++++++ ChangeLog.pre-2-6 | 7 +++++++ ChangeLog.pre-2-8 | 7 +++++++ gtk/gtkmenushell.c | 8 ++++++-- gtk/gtkoptionmenu.c | 4 +++- 9 files changed, 58 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index ec2d41c0c9..f930308c06 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Sun Nov 1 21:00:06 GMT 1998 Austin Donnelly + + * gtk/gtkoptionmenu.c + * gtk/gtkmenushell.c: make option menus work when some of the + menuitems are hidden - previously, option menu would popup too + high. + 1998-10-31 Raja R Harinath * gtk/gtkfeatures.h.in: Remove `#pragma }'. diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index ec2d41c0c9..f930308c06 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,10 @@ +Sun Nov 1 21:00:06 GMT 1998 Austin Donnelly + + * gtk/gtkoptionmenu.c + * gtk/gtkmenushell.c: make option menus work when some of the + menuitems are hidden - previously, option menu would popup too + high. + 1998-10-31 Raja R Harinath * gtk/gtkfeatures.h.in: Remove `#pragma }'. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index ec2d41c0c9..f930308c06 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,10 @@ +Sun Nov 1 21:00:06 GMT 1998 Austin Donnelly + + * gtk/gtkoptionmenu.c + * gtk/gtkmenushell.c: make option menus work when some of the + menuitems are hidden - previously, option menu would popup too + high. + 1998-10-31 Raja R Harinath * gtk/gtkfeatures.h.in: Remove `#pragma }'. diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index ec2d41c0c9..f930308c06 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,10 @@ +Sun Nov 1 21:00:06 GMT 1998 Austin Donnelly + + * gtk/gtkoptionmenu.c + * gtk/gtkmenushell.c: make option menus work when some of the + menuitems are hidden - previously, option menu would popup too + high. + 1998-10-31 Raja R Harinath * gtk/gtkfeatures.h.in: Remove `#pragma }'. diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index ec2d41c0c9..f930308c06 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,10 @@ +Sun Nov 1 21:00:06 GMT 1998 Austin Donnelly + + * gtk/gtkoptionmenu.c + * gtk/gtkmenushell.c: make option menus work when some of the + menuitems are hidden - previously, option menu would popup too + high. + 1998-10-31 Raja R Harinath * gtk/gtkfeatures.h.in: Remove `#pragma }'. diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index ec2d41c0c9..f930308c06 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,10 @@ +Sun Nov 1 21:00:06 GMT 1998 Austin Donnelly + + * gtk/gtkoptionmenu.c + * gtk/gtkmenushell.c: make option menus work when some of the + menuitems are hidden - previously, option menu would popup too + high. + 1998-10-31 Raja R Harinath * gtk/gtkfeatures.h.in: Remove `#pragma }'. diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index ec2d41c0c9..f930308c06 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,10 @@ +Sun Nov 1 21:00:06 GMT 1998 Austin Donnelly + + * gtk/gtkoptionmenu.c + * gtk/gtkmenushell.c: make option menus work when some of the + menuitems are hidden - previously, option menu would popup too + high. + 1998-10-31 Raja R Harinath * gtk/gtkfeatures.h.in: Remove `#pragma }'. diff --git a/gtk/gtkmenushell.c b/gtk/gtkmenushell.c index a6a3bb20df..ad90966211 100644 --- a/gtk/gtkmenushell.c +++ b/gtk/gtkmenushell.c @@ -868,7 +868,9 @@ gtk_menu_shell_move_selected (GtkMenuShell *menu_shell, { node = node->next; while (node != start_node && - (!node || !GTK_WIDGET_SENSITIVE (node->data))) + (!node || + !GTK_WIDGET_SENSITIVE (node->data) || + !GTK_WIDGET_VISIBLE (node->data) )) { if (!node) node = menu_shell->children; @@ -880,7 +882,9 @@ gtk_menu_shell_move_selected (GtkMenuShell *menu_shell, { node = node->prev; while (node != start_node && - (!node || !GTK_WIDGET_SENSITIVE (node->data))) + (!node || + !GTK_WIDGET_SENSITIVE (node->data) || + !GTK_WIDGET_VISIBLE (node->data) )) { if (!node) node = g_list_last (menu_shell->children); diff --git a/gtk/gtkoptionmenu.c b/gtk/gtkoptionmenu.c index aadbc7e155..6f520156f3 100644 --- a/gtk/gtkoptionmenu.c +++ b/gtk/gtkoptionmenu.c @@ -637,7 +637,9 @@ gtk_option_menu_position (GtkMenu *menu, if (active == child) break; - menu_ypos -= child->allocation.height; + if (GTK_WIDGET_VISIBLE (child)) + menu_ypos -= child->allocation.height; + children = children->next; }