summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorGMT 1998 Austin Donnelly <austin@greenend.org.uk>1998-11-01 21:10:44 +0000
committerAustin Donnelly <austin@src.gnome.org>1998-11-01 21:10:44 +0000
commitb9a51f353064aceed3ac512bb7d4558fcf99d771 (patch)
treedd3f86cd4232f4c0244dfb3b843ee7935c652f6a /gtk
parent5492003cffae560affd30dc9f68dad29c3f84ad2 (diff)
downloadgtk+-b9a51f353064aceed3ac512bb7d4558fcf99d771.tar.gz
gtk/gtkoptionmenu.c make option menus work when some of the menuitems are
Sun Nov 1 21:00:06 GMT 1998 Austin Donnelly <austin@greenend.org.uk> * gtk/gtkoptionmenu.c * gtk/gtkmenushell.c: make option menus work when some of the menuitems are hidden - previously, option menu would popup too high.
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtkmenushell.c8
-rw-r--r--gtk/gtkoptionmenu.c4
2 files changed, 9 insertions, 3 deletions
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;
}