Backport a patch to fix terminal shrinking with every line entered

This commit is contained in:
Kalev Lember 2016-08-19 07:55:21 +02:00
parent be703625c9
commit a6bece5f38
2 changed files with 92 additions and 1 deletions

View File

@ -0,0 +1,84 @@
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

View File

@ -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 <klember@redhat.com> - 3.21.90-2
- Backport a patch to fix terminal shrinking with every line entered
* Thu Aug 18 2016 Kalev Lember <klember@redhat.com> - 3.21.90-1
- Update to 3.21.90
- Rebase the translations