diff --git a/ChangeLog b/ChangeLog index c2a04ec743..194577192a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Thu Oct 7 22:52:42 1999 Tim Janik + + * gtk/gtkitemfactory.c (gtk_item_factory_popup_with_data): even + popup menus when the menu is already visible, but its parent + is still hidden, (happens after tornoff window got hidden). + Thu Oct 7 12:50:23 CDT 1999 Shawn T. Amundson * Released GTK+ 1.2.6 diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index c2a04ec743..194577192a 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,9 @@ +Thu Oct 7 22:52:42 1999 Tim Janik + + * gtk/gtkitemfactory.c (gtk_item_factory_popup_with_data): even + popup menus when the menu is already visible, but its parent + is still hidden, (happens after tornoff window got hidden). + Thu Oct 7 12:50:23 CDT 1999 Shawn T. Amundson * Released GTK+ 1.2.6 diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index c2a04ec743..194577192a 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,9 @@ +Thu Oct 7 22:52:42 1999 Tim Janik + + * gtk/gtkitemfactory.c (gtk_item_factory_popup_with_data): even + popup menus when the menu is already visible, but its parent + is still hidden, (happens after tornoff window got hidden). + Thu Oct 7 12:50:23 CDT 1999 Shawn T. Amundson * Released GTK+ 1.2.6 diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index c2a04ec743..194577192a 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,9 @@ +Thu Oct 7 22:52:42 1999 Tim Janik + + * gtk/gtkitemfactory.c (gtk_item_factory_popup_with_data): even + popup menus when the menu is already visible, but its parent + is still hidden, (happens after tornoff window got hidden). + Thu Oct 7 12:50:23 CDT 1999 Shawn T. Amundson * Released GTK+ 1.2.6 diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index c2a04ec743..194577192a 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,9 @@ +Thu Oct 7 22:52:42 1999 Tim Janik + + * gtk/gtkitemfactory.c (gtk_item_factory_popup_with_data): even + popup menus when the menu is already visible, but its parent + is still hidden, (happens after tornoff window got hidden). + Thu Oct 7 12:50:23 CDT 1999 Shawn T. Amundson * Released GTK+ 1.2.6 diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index c2a04ec743..194577192a 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,9 @@ +Thu Oct 7 22:52:42 1999 Tim Janik + + * gtk/gtkitemfactory.c (gtk_item_factory_popup_with_data): even + popup menus when the menu is already visible, but its parent + is still hidden, (happens after tornoff window got hidden). + Thu Oct 7 12:50:23 CDT 1999 Shawn T. Amundson * Released GTK+ 1.2.6 diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index c2a04ec743..194577192a 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,9 @@ +Thu Oct 7 22:52:42 1999 Tim Janik + + * gtk/gtkitemfactory.c (gtk_item_factory_popup_with_data): even + popup menus when the menu is already visible, but its parent + is still hidden, (happens after tornoff window got hidden). + Thu Oct 7 12:50:23 CDT 1999 Shawn T. Amundson * Released GTK+ 1.2.6 diff --git a/gtk/gtkitemfactory.c b/gtk/gtkitemfactory.c index 9745f07783..20353411b5 100644 --- a/gtk/gtkitemfactory.c +++ b/gtk/gtkitemfactory.c @@ -1430,45 +1430,42 @@ gtk_item_factory_popup_with_data (GtkItemFactory *ifactory, guint mouse_button, guint32 time) { + MenuPos *mpos; + g_return_if_fail (ifactory != NULL); g_return_if_fail (GTK_IS_ITEM_FACTORY (ifactory)); g_return_if_fail (GTK_IS_MENU (ifactory->widget)); - - if (!GTK_WIDGET_VISIBLE (ifactory->widget)) + + mpos = gtk_object_get_data_by_id (GTK_OBJECT (ifactory->widget), quark_if_menu_pos); + + if (!mpos) { - MenuPos *mpos; - - mpos = gtk_object_get_data_by_id (GTK_OBJECT (ifactory->widget), quark_if_menu_pos); - - if (!mpos) - { - mpos = g_new0 (MenuPos, 1); - gtk_object_set_data_by_id_full (GTK_OBJECT (ifactory->widget), - quark_if_menu_pos, - mpos, - g_free); - } - - mpos->x = x; - mpos->y = y; - - if (popup_data != NULL) - { - gtk_object_set_data_by_id_full (GTK_OBJECT (ifactory), - quark_popup_data, - popup_data, - destroy); - gtk_signal_connect (GTK_OBJECT (ifactory->widget), - "selection-done", - GTK_SIGNAL_FUNC (ifactory_delete_popup_data), - ifactory); - } - - gtk_menu_popup (GTK_MENU (ifactory->widget), - NULL, NULL, - gtk_item_factory_menu_pos, mpos, - mouse_button, time); + mpos = g_new0 (MenuPos, 1); + gtk_object_set_data_by_id_full (GTK_OBJECT (ifactory->widget), + quark_if_menu_pos, + mpos, + g_free); } + + mpos->x = x; + mpos->y = y; + + if (popup_data != NULL) + { + gtk_object_set_data_by_id_full (GTK_OBJECT (ifactory), + quark_popup_data, + popup_data, + destroy); + gtk_signal_connect (GTK_OBJECT (ifactory->widget), + "selection-done", + GTK_SIGNAL_FUNC (ifactory_delete_popup_data), + ifactory); + } + + gtk_menu_popup (GTK_MENU (ifactory->widget), + NULL, NULL, + gtk_item_factory_menu_pos, mpos, + mouse_button, time); } static guint