window: Remove suspicious branch

While this commit was found to make emacs windows shrink (and it was
reverted in the gtk-3-20 branch for that reason), that was the only
observed breakage, while the reversal broke several of our unit tests.

Closer study of the emacs sources revealed that it does some really
unsupportable things like doing its own X event handling behind GTK+'s
back and freely mixing sizes of GtkWindows and GdkWindows obtained in
various ways. I've filed a bug against emacs with suggestions for how
to avoid the shrinking window, regardless of this commit.

Original commit message:

It seems this branch is not needed anymore. It was originally added in
1999 to support gtk_widget_realize(), but all those reasons seem
obsolete today.
Instead just call gtk_widget_realize().

If you end up at this commit when bisecting:
There is no bug that made me remove this code, it was purely meant to be
cleanup / dead code removal. I seem to have introduced a new bug or
bisecting wouldn't have let you here. So it seems we should just revert
this commit.
This commit is contained in:
Benjamin Otte 2015-12-01 17:25:54 +01:00 committed by Matthias Clasen
parent aeed695e26
commit a91237d65e

View File

@ -6092,7 +6092,6 @@ gtk_window_show (GtkWidget *widget)
GtkWindow *window = GTK_WINDOW (widget);
GtkWindowPrivate *priv = window->priv;
GtkContainer *container = GTK_CONTAINER (window);
gboolean need_resize;
gboolean is_plug;
if (!_gtk_widget_is_toplevel (GTK_WIDGET (widget)))
@ -6103,62 +6102,10 @@ gtk_window_show (GtkWidget *widget)
_gtk_widget_set_visible_flag (widget, TRUE);
need_resize = _gtk_widget_get_alloc_needed (widget) || !_gtk_widget_get_realized (widget);
gtk_css_node_validate (gtk_widget_get_css_node (widget));
if (need_resize)
{
GtkWindowGeometryInfo *info = gtk_window_get_geometry_info (window, TRUE);
GtkAllocation allocation = { 0, 0 };
GdkRectangle configure_request;
GdkGeometry new_geometry;
guint new_flags;
gboolean was_realized;
gtk_widget_realize (widget);
/* We are going to go ahead and perform this configure request
* and then emulate a configure notify by going ahead and
* doing a size allocate. Sort of a synchronous
* mini-copy of gtk_window_move_resize() here.
*/
gtk_window_compute_configure_request (window,
&configure_request,
&new_geometry,
&new_flags);
/* We update this because we are going to go ahead
* and gdk_window_resize() below, rather than
* queuing it.
*/
info->last.configure_request = configure_request;
/* and allocate the window - this is normally done
* in move_resize in response to configure notify
*/
allocation.width = configure_request.width;
allocation.height = configure_request.height;
gtk_widget_size_allocate (widget, &allocation);
/* Then we guarantee we have a realize */
was_realized = FALSE;
if (!_gtk_widget_get_realized (widget))
{
gtk_widget_realize (widget);
was_realized = TRUE;
}
/* We only send configure request if we didn't just finish
* creating the window; if we just created the window
* then we created it with widget->allocation anyhow.
*/
if (!was_realized)
gdk_window_move_resize (_gtk_widget_get_window (widget),
configure_request.x,
configure_request.y,
configure_request.width,
configure_request.height);
}
gtk_container_check_resize (container);
gtk_widget_map (widget);