diff --git a/0001-Revert-window-Fix-CSD-size-calculations-with-long-ti.patch b/0001-Revert-window-Fix-CSD-size-calculations-with-long-ti.patch new file mode 100644 index 0000000..613b052 --- /dev/null +++ b/0001-Revert-window-Fix-CSD-size-calculations-with-long-ti.patch @@ -0,0 +1,84 @@ +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 + diff --git a/gnome-terminal.spec b/gnome-terminal.spec index b3a6385..90d3659 100644 --- a/gnome-terminal.spec +++ b/gnome-terminal.spec @@ -8,7 +8,7 @@ Summary: Terminal emulator for GNOME Name: gnome-terminal Version: 3.21.90 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ and GFDL Group: User Interface/Desktops URL: http://www.gnome.org/ @@ -18,6 +18,9 @@ Source1: org.gnome.Terminal.gschema.override Patch0: 0001-build-Don-t-treat-warnings-as-errors.patch +# Backported from upstream +Patch1: 0001-Revert-window-Fix-CSD-size-calculations-with-long-ti.patch + Patch100: gnome-terminal-transparency-notify.patch BuildRequires: dbus-x11 @@ -64,6 +67,7 @@ option to the right-click context menu in Nautilus. %prep %setup -q %patch0 -p1 -b .warnings +%patch1 -p1 %patch100 -p1 -b .dark-transparency-notify %build @@ -111,6 +115,9 @@ fi %{_datadir}/appdata/org.gnome.Terminal.Nautilus.metainfo.xml %changelog +* Fri Aug 19 2016 Kalev Lember - 3.21.90-2 +- Backport a patch to fix terminal shrinking with every line entered + * Thu Aug 18 2016 Kalev Lember - 3.21.90-1 - Update to 3.21.90 - Rebase the translations