summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog16
-rw-r--r--ChangeLog.pre-2-016
-rw-r--r--ChangeLog.pre-2-1016
-rw-r--r--ChangeLog.pre-2-216
-rw-r--r--ChangeLog.pre-2-416
-rw-r--r--ChangeLog.pre-2-616
-rw-r--r--ChangeLog.pre-2-816
-rw-r--r--gtk/gtkmenu.c41
-rw-r--r--gtk/gtktearoffmenuitem.c3
9 files changed, 131 insertions, 25 deletions
diff --git a/ChangeLog b/ChangeLog
index 3b5441e164..8019e8e1fb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+Wed Nov 28 18:19:12 2001 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkmenu.c (gtk_menu_set_tearoff_hints): Move
+ accounting of menu->tearoff_scrollbar width to here
+ and make sure we have the correct requisition.
+
+ * gtk/gtkmenu.c (gtk_menu_position): Fix fixme
+ by using gtk_window_move().
+
+ * gtk/gtkmenu.c (gtk_menu_set_tearoff_state): Force
+ the requisition to be updated by calling
+ gtk_widget_size_request() (#65440)
+
+ * gtk/gtktearoffmenuitem.c (gtk_tearoff_menu_item_activate):
+ queue resize before calling gtk_menu_set_tearoff_state().
+
Wed Nov 28 22:20:44 2001 Kristian Rietveld <kristian@planet.nl>
* demos/gtk-demo/editable_cells.c: fix typo
diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0
index 3b5441e164..8019e8e1fb 100644
--- a/ChangeLog.pre-2-0
+++ b/ChangeLog.pre-2-0
@@ -1,3 +1,19 @@
+Wed Nov 28 18:19:12 2001 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkmenu.c (gtk_menu_set_tearoff_hints): Move
+ accounting of menu->tearoff_scrollbar width to here
+ and make sure we have the correct requisition.
+
+ * gtk/gtkmenu.c (gtk_menu_position): Fix fixme
+ by using gtk_window_move().
+
+ * gtk/gtkmenu.c (gtk_menu_set_tearoff_state): Force
+ the requisition to be updated by calling
+ gtk_widget_size_request() (#65440)
+
+ * gtk/gtktearoffmenuitem.c (gtk_tearoff_menu_item_activate):
+ queue resize before calling gtk_menu_set_tearoff_state().
+
Wed Nov 28 22:20:44 2001 Kristian Rietveld <kristian@planet.nl>
* demos/gtk-demo/editable_cells.c: fix typo
diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10
index 3b5441e164..8019e8e1fb 100644
--- a/ChangeLog.pre-2-10
+++ b/ChangeLog.pre-2-10
@@ -1,3 +1,19 @@
+Wed Nov 28 18:19:12 2001 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkmenu.c (gtk_menu_set_tearoff_hints): Move
+ accounting of menu->tearoff_scrollbar width to here
+ and make sure we have the correct requisition.
+
+ * gtk/gtkmenu.c (gtk_menu_position): Fix fixme
+ by using gtk_window_move().
+
+ * gtk/gtkmenu.c (gtk_menu_set_tearoff_state): Force
+ the requisition to be updated by calling
+ gtk_widget_size_request() (#65440)
+
+ * gtk/gtktearoffmenuitem.c (gtk_tearoff_menu_item_activate):
+ queue resize before calling gtk_menu_set_tearoff_state().
+
Wed Nov 28 22:20:44 2001 Kristian Rietveld <kristian@planet.nl>
* demos/gtk-demo/editable_cells.c: fix typo
diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2
index 3b5441e164..8019e8e1fb 100644
--- a/ChangeLog.pre-2-2
+++ b/ChangeLog.pre-2-2
@@ -1,3 +1,19 @@
+Wed Nov 28 18:19:12 2001 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkmenu.c (gtk_menu_set_tearoff_hints): Move
+ accounting of menu->tearoff_scrollbar width to here
+ and make sure we have the correct requisition.
+
+ * gtk/gtkmenu.c (gtk_menu_position): Fix fixme
+ by using gtk_window_move().
+
+ * gtk/gtkmenu.c (gtk_menu_set_tearoff_state): Force
+ the requisition to be updated by calling
+ gtk_widget_size_request() (#65440)
+
+ * gtk/gtktearoffmenuitem.c (gtk_tearoff_menu_item_activate):
+ queue resize before calling gtk_menu_set_tearoff_state().
+
Wed Nov 28 22:20:44 2001 Kristian Rietveld <kristian@planet.nl>
* demos/gtk-demo/editable_cells.c: fix typo
diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4
index 3b5441e164..8019e8e1fb 100644
--- a/ChangeLog.pre-2-4
+++ b/ChangeLog.pre-2-4
@@ -1,3 +1,19 @@
+Wed Nov 28 18:19:12 2001 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkmenu.c (gtk_menu_set_tearoff_hints): Move
+ accounting of menu->tearoff_scrollbar width to here
+ and make sure we have the correct requisition.
+
+ * gtk/gtkmenu.c (gtk_menu_position): Fix fixme
+ by using gtk_window_move().
+
+ * gtk/gtkmenu.c (gtk_menu_set_tearoff_state): Force
+ the requisition to be updated by calling
+ gtk_widget_size_request() (#65440)
+
+ * gtk/gtktearoffmenuitem.c (gtk_tearoff_menu_item_activate):
+ queue resize before calling gtk_menu_set_tearoff_state().
+
Wed Nov 28 22:20:44 2001 Kristian Rietveld <kristian@planet.nl>
* demos/gtk-demo/editable_cells.c: fix typo
diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6
index 3b5441e164..8019e8e1fb 100644
--- a/ChangeLog.pre-2-6
+++ b/ChangeLog.pre-2-6
@@ -1,3 +1,19 @@
+Wed Nov 28 18:19:12 2001 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkmenu.c (gtk_menu_set_tearoff_hints): Move
+ accounting of menu->tearoff_scrollbar width to here
+ and make sure we have the correct requisition.
+
+ * gtk/gtkmenu.c (gtk_menu_position): Fix fixme
+ by using gtk_window_move().
+
+ * gtk/gtkmenu.c (gtk_menu_set_tearoff_state): Force
+ the requisition to be updated by calling
+ gtk_widget_size_request() (#65440)
+
+ * gtk/gtktearoffmenuitem.c (gtk_tearoff_menu_item_activate):
+ queue resize before calling gtk_menu_set_tearoff_state().
+
Wed Nov 28 22:20:44 2001 Kristian Rietveld <kristian@planet.nl>
* demos/gtk-demo/editable_cells.c: fix typo
diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8
index 3b5441e164..8019e8e1fb 100644
--- a/ChangeLog.pre-2-8
+++ b/ChangeLog.pre-2-8
@@ -1,3 +1,19 @@
+Wed Nov 28 18:19:12 2001 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkmenu.c (gtk_menu_set_tearoff_hints): Move
+ accounting of menu->tearoff_scrollbar width to here
+ and make sure we have the correct requisition.
+
+ * gtk/gtkmenu.c (gtk_menu_position): Fix fixme
+ by using gtk_window_move().
+
+ * gtk/gtkmenu.c (gtk_menu_set_tearoff_state): Force
+ the requisition to be updated by calling
+ gtk_widget_size_request() (#65440)
+
+ * gtk/gtktearoffmenuitem.c (gtk_tearoff_menu_item_activate):
+ queue resize before calling gtk_menu_set_tearoff_state().
+
Wed Nov 28 22:20:44 2001 Kristian Rietveld <kristian@planet.nl>
* demos/gtk-demo/editable_cells.c: fix typo
diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c
index 7a066aef4f..8e5751c6a4 100644
--- a/gtk/gtkmenu.c
+++ b/gtk/gtkmenu.c
@@ -953,6 +953,12 @@ gtk_menu_set_tearoff_hints (GtkMenu *menu,
if (!menu->tearoff_window)
return;
+ if (GTK_WIDGET_VISIBLE (menu->tearoff_scrollbar))
+ {
+ gtk_widget_size_request (menu->tearoff_scrollbar, NULL);
+ width += menu->tearoff_scrollbar->requisition.width;
+ }
+
geometry_hints.min_width = width;
geometry_hints.max_width = width;
@@ -1053,11 +1059,13 @@ gtk_menu_set_tearoff_state (GtkMenu *menu,
}
gtk_menu_reparent (menu, menu->tearoff_hbox, FALSE);
-
- gdk_window_get_size (GTK_WIDGET (menu)->window, &width, &height);
- if (GTK_WIDGET_VISIBLE (menu->tearoff_scrollbar))
- width += menu->tearoff_scrollbar->requisition.width;
-
+
+ gdk_window_get_size (GTK_WIDGET (menu)->window, &width, NULL);
+
+ /* Update menu->requisition
+ */
+ gtk_widget_size_request (GTK_WIDGET (menu), NULL);
+
gtk_menu_set_tearoff_hints (menu, width);
gtk_widget_realize (menu->tearoff_window);
@@ -1252,7 +1260,6 @@ gtk_menu_size_request (GtkWidget *widget,
guint max_toggle_size;
guint max_accel_width;
GtkRequisition child_requisition;
- gint width;
g_return_if_fail (GTK_IS_MENU (widget));
g_return_if_fail (requisition != NULL);
@@ -1304,15 +1311,10 @@ gtk_menu_size_request (GtkWidget *widget,
/* If the requested width was different than the allocated width, we need to change
* the geometry hints for the tear off window so that the window can actually be resized.
- * Don't resize the tearoff if it is not active, beacuse it won't redraw (it is only a background pixmap).
+ * Don't resize the tearoff if it is not active, because it won't redraw (it is only a background pixmap).
*/
if ((requisition->width != GTK_WIDGET (menu)->allocation.width) && menu->tearoff_active)
- {
- width = requisition->width;
- if (menu->tearoff_scrollbar && GTK_WIDGET_VISIBLE (menu->tearoff_scrollbar))
- width += menu->tearoff_scrollbar->requisition.width;
- gtk_menu_set_tearoff_hints (menu, width);
- }
+ gtk_menu_set_tearoff_hints (menu, requisition->width);
}
static void
@@ -1432,9 +1434,8 @@ gtk_menu_size_allocate (GtkWidget *widget,
if (!GTK_WIDGET_VISIBLE (menu->tearoff_scrollbar))
{
- gtk_menu_set_tearoff_hints (menu,
- allocation->width + menu->tearoff_scrollbar->requisition.width);
gtk_widget_show (menu->tearoff_scrollbar);
+ gtk_menu_set_tearoff_hints (menu, allocation->width);
gtk_widget_set_usize (menu->tearoff_window, -1, allocation->height);
}
}
@@ -2202,14 +2203,8 @@ gtk_menu_position (GtkMenu *menu)
if (scroll_offset > 0)
scroll_offset += MENU_SCROLL_ARROW_HEIGHT;
- /* FIXME: The MAX() here is because gtk_widget_set_uposition
- * is broken. Once we provide an alternate interface that
- * allows negative values, then we can remove them.
- */
- x = MAX (x, 0);
- gtk_widget_set_uposition (GTK_MENU_SHELL (menu)->active ?
- menu->toplevel : menu->tearoff_window,
- x, y);
+ gtk_window_move (GTK_WINDOW (GTK_MENU_SHELL (menu)->active ? menu->toplevel : menu->tearoff_window),
+ x, y);
gtk_widget_set_usize (GTK_MENU_SHELL (menu)->active ?
menu->toplevel : menu->tearoff_hbox,
-1, requisition.height);
diff --git a/gtk/gtktearoffmenuitem.c b/gtk/gtktearoffmenuitem.c
index 1c027b1d0b..80ef05a8dd 100644
--- a/gtk/gtktearoffmenuitem.c
+++ b/gtk/gtktearoffmenuitem.c
@@ -218,6 +218,7 @@ gtk_tearoff_menu_item_activate (GtkMenuItem *menu_item)
tearoff_menu_item = GTK_TEAROFF_MENU_ITEM (menu_item);
tearoff_menu_item->torn_off = !tearoff_menu_item->torn_off;
+ gtk_widget_queue_resize (GTK_WIDGET (menu_item));
if (GTK_IS_MENU (GTK_WIDGET (menu_item)->parent))
{
@@ -235,7 +236,5 @@ gtk_tearoff_menu_item_activate (GtkMenuItem *menu_item)
GTK_SIGNAL_FUNC (gtk_tearoff_menu_item_delete_cb),
GTK_OBJECT (menu_item));
}
-
- gtk_widget_queue_resize (GTK_WIDGET (menu_item));
}