GNOME Bugzilla – Bug 137822
gtk_window_compute_hints() adjust base_width/base_height incorrectly
Last modified: 2004-12-22 21:47:04 UTC
gtk_window_compute_hints() adjusts base_width/base_height incorrectly. (Filing this as a new bug in the hope that it can be fixed without fully fixing bug #68668, though I have no idea how.) if (geometry_info && geometry_info->widget) { GtkRequisition child_requisition; gtk_widget_get_child_requisition (geometry_info->widget, &child_requisition); extra_width = widget->requisition.width - child_requisition.width; extra_height = widget->requisition.height - child_requisition.height; } if (*new_flags & GDK_HINT_BASE_SIZE) { new_geometry->base_width += extra_width; new_geometry->base_height += extra_height; } Suppose in your toplevel window you have a widget on which geometry hints are set, and to the right of that widget you have another widget which has a positive requisition height. This code adds that requisition height to base_height, which is wrong. It should only add the requisition height of widgets that are above or below the geometry widget in the layout of the window. The effect from a user perspective is that the window manager reports fewer rows than there actually are. Switch everything up and you have the same problem horizontally.
This is exactly bug 68668. (See gnome-terminal sources for how it can be worked around in a really hacky way) *** This bug has been marked as a duplicate of 68668 ***