85 lines
3.8 KiB
Diff
85 lines
3.8 KiB
Diff
|
From 441aece5b5f012c04307fe6df652ffaea1eeda0a Mon Sep 17 00:00:00 2001
|
||
|
From: Christian Persch <chpe@gnome.org>
|
||
|
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
|
||
|
|