From 441aece5b5f012c04307fe6df652ffaea1eeda0a Mon Sep 17 00:00:00 2001 From: Christian Persch Date: Wed, 17 Aug 2016 08:20:19 +0200 Subject: [PATCH] Revert "window: Fix CSD size calculations with long titles" This reverts commit 40d9d5b78067caa6a28e83e32b87c0b51d14c091. The commit introduced a regression on non-CSD, see https://bugzilla.gnome.org/show_bug.cgi?id=769898#c5 --- src/terminal-window.c | 34 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/src/terminal-window.c b/src/terminal-window.c index b86e76f..46676a5 100644 --- a/src/terminal-window.c +++ b/src/terminal-window.c @@ -3615,11 +3615,11 @@ terminal_window_update_geometry (TerminalWindow *window) GtkWidget *widget; GdkGeometry hints; GtkBorder padding; - GtkRequisition vbox_request, widget_request; + GtkRequisition toplevel_request, vbox_request, widget_request; int grid_width, grid_height; int char_width, char_height; int chrome_width, chrome_height; - int csd_width = 0, csd_height = 0; + int csd_width, csd_height; if (priv->active_screen == NULL) return; @@ -3650,30 +3650,20 @@ terminal_window_update_geometry (TerminalWindow *window) _terminal_debug_print (TERMINAL_DEBUG_GEOMETRY, "content area requests %dx%d px\n", vbox_request.width, vbox_request.height); + gtk_widget_get_preferred_size (GTK_WIDGET (window), NULL, &toplevel_request); + _terminal_debug_print (TERMINAL_DEBUG_GEOMETRY, "window requests %dx%d px\n", + toplevel_request.width, toplevel_request.height); chrome_width = vbox_request.width - (char_width * grid_width); chrome_height = vbox_request.height - (char_height * grid_height); _terminal_debug_print (TERMINAL_DEBUG_GEOMETRY, "chrome: %dx%d px\n", chrome_width, chrome_height); - if (priv->realized) - { - /* Only when having been realize the CSD can be calculated. Do this by - * using the actual allocation rather then the preferred size as the - * the preferred size takes the natural size of e.g. the title bar into - * account which can be far wider then the contents size when using a - * very long title */ - GtkAllocation toplevel_allocation; - - gtk_widget_get_allocation (GTK_WIDGET (window), &toplevel_allocation); - _terminal_debug_print (TERMINAL_DEBUG_GEOMETRY, "window allocation %dx%d px\n", - toplevel_allocation.width, toplevel_allocation.height); - - csd_width = toplevel_allocation.width - vbox_request.width; - csd_height = toplevel_allocation.height - vbox_request.height; - _terminal_debug_print (TERMINAL_DEBUG_GEOMETRY, "CSDs: %dx%d px\n", - csd_width, csd_height); - } + csd_width = toplevel_request.width - vbox_request.width; + csd_height = toplevel_request.height - vbox_request.height; + _terminal_debug_print (TERMINAL_DEBUG_GEOMETRY, "CSDs: %dx%d px%s\n", + csd_width, csd_height, + priv->realized ? "" : " (just a guess)"); gtk_widget_get_preferred_size (widget, NULL, &widget_request); _terminal_debug_print (TERMINAL_DEBUG_GEOMETRY, "terminal widget requests %dx%d px\n", @@ -3682,8 +3672,8 @@ terminal_window_update_geometry (TerminalWindow *window) if (!priv->realized) { /* Don't actually set the geometry hints until we have been realized, - * because we don't know how large the client-side decorations are going - * to be. We also avoid setting priv->old_csd_width or + * because we don't know precisely how large the client-side decorations + * are going to be. We also avoid setting priv->old_csd_width or * priv->old_csd_height, so that next time through this function we'll * definitely recalculate the hints. * -- 2.7.4