[gnome-terminal/gnome-3-20] Revert "window: Fix CSD size calculations with long titles"



commit 8a4fb1be48377dbca8696d8dd7b371104e82424d
Author: Christian Persch <chpe src gnome org>
Date:   Mon Sep 12 21:30:10 2016 +0200

    Revert "window: Fix CSD size calculations with long titles"
    
    This reverts commit 8edc4ce3b0c45bcd289fe597f5c9bca682febbae.
    
    Wrong commit.

 src/terminal-window.c |   34 ++++++++++++----------------------
 1 files changed, 12 insertions(+), 22 deletions(-)
---
diff --git a/src/terminal-window.c b/src/terminal-window.c
index dfe4742..82b1b10 100644
--- a/src/terminal-window.c
+++ b/src/terminal-window.c
@@ -3631,11 +3631,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;
@@ -3666,30 +3666,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",
@@ -3698,8 +3688,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.
        *


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]