Accepting request 425017 from GNOME:Next
Scripted push of project GNOME:Next OBS-URL: https://build.opensuse.org/request/show/425017 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gnome-terminal?expand=0&rev=170
This commit is contained in:
parent
2c4e1af819
commit
e175633535
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f5383060730f1de70af35e917f82d5b6a14d963ad9cfd6a0e705f90011645a23
|
||||
size 1897148
|
3
gnome-terminal-3.21.90.tar.xz
Normal file
3
gnome-terminal-3.21.90.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2bb5a63389b320f65e21cba812cccb2a1e52274e3ed0855eec57bf1bcf5407ab
|
||||
size 1900556
|
85
gnome-terminal-fix-csd-calculation.patch
Normal file
85
gnome-terminal-fix-csd-calculation.patch
Normal file
@ -0,0 +1,85 @@
|
||||
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: 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.
|
||||
*
|
||||
--
|
||||
cgit v0.12
|
||||
|
||||
|
@ -1,40 +0,0 @@
|
||||
From 2a10e0ed7d6210b0522ffc2faf8483c64f1d183d Mon Sep 17 00:00:00 2001
|
||||
From: Egmont Koblinger <egmont@gmail.com>
|
||||
Date: Fri, 22 Jul 2016 16:42:14 +0200
|
||||
Subject: profile: editor: Properly initialize the first palette color
|
||||
|
||||
https://bugzilla.gnome.org/show_bug.cgi?id=768850
|
||||
(cherry picked from commit 6447aded26416e49bf5fdce8a8fd13c16c0ebb44)
|
||||
---
|
||||
src/profile-editor.c | 11 +++--------
|
||||
1 file changed, 3 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/src/profile-editor.c b/src/profile-editor.c
|
||||
index ff26df6..82cc7a9 100644
|
||||
--- a/src/profile-editor.c
|
||||
+++ b/src/profile-editor.c
|
||||
@@ -405,18 +405,13 @@ profile_palette_notify_colorpickers_cb (GSettings *profile,
|
||||
for (i = 0; i < n_colors; i++)
|
||||
{
|
||||
char name[32];
|
||||
- GdkRGBA old_color;
|
||||
|
||||
g_snprintf (name, sizeof (name), "palette-colorpicker-%" G_GSIZE_FORMAT, i + 1);
|
||||
w = (GtkWidget *) gtk_builder_get_object (builder, name);
|
||||
|
||||
- gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (w), &old_color);
|
||||
- if (!rgba_equal (&old_color, &colors[i]))
|
||||
- {
|
||||
- g_signal_handlers_block_by_func (w, G_CALLBACK (palette_color_notify_cb), profile);
|
||||
- gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (w), &colors[i]);
|
||||
- g_signal_handlers_unblock_by_func (w, G_CALLBACK (palette_color_notify_cb), profile);
|
||||
- }
|
||||
+ g_signal_handlers_block_by_func (w, G_CALLBACK (palette_color_notify_cb), profile);
|
||||
+ gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (w), &colors[i]);
|
||||
+ g_signal_handlers_unblock_by_func (w, G_CALLBACK (palette_color_notify_cb), profile);
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
cgit v0.12
|
||||
|
@ -1,375 +0,0 @@
|
||||
From 82be23534eb5f0394b3e6c40992ad36d37dfea6d Mon Sep 17 00:00:00 2001
|
||||
From: Sorokin Alexei <sor.alexei@meowr.ru>
|
||||
Date: Mon, 7 Mar 2016 21:45:46 +0000
|
||||
Subject: [PATCH 1/2] Fix chunked resize and --geometry option
|
||||
|
||||
Was caused by https://git.gnome.org/browse/gtk+/commit/?id=08974a1
|
||||
|
||||
https://bugzilla.gnome.org/show_bug.cgi?id=760944
|
||||
---
|
||||
src/terminal-options.c | 4 ----
|
||||
src/terminal-window.c | 19 +++++++++++++------
|
||||
2 files changed, 13 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/src/terminal-options.c b/src/terminal-options.c
|
||||
index cc51cf6..723ecfe 100644
|
||||
--- a/src/terminal-options.c
|
||||
+++ b/src/terminal-options.c
|
||||
@@ -583,10 +583,6 @@ option_geometry_callback (const gchar *option_name,
|
||||
{
|
||||
TerminalOptions *options = data;
|
||||
|
||||
- /* See https://bugzilla.gnome.org/show_bug.cgi?id=760944 */
|
||||
- if (gtk_check_version (3, 19, 5) == NULL)
|
||||
- return unsupported_option_callback (option_name, value, data, error);
|
||||
-
|
||||
if (options->initial_windows)
|
||||
{
|
||||
InitialWindow *iw;
|
||||
diff --git a/src/terminal-window.c b/src/terminal-window.c
|
||||
index 80e54b0..1e60697 100644
|
||||
--- a/src/terminal-window.c
|
||||
+++ b/src/terminal-window.c
|
||||
@@ -3571,8 +3571,9 @@ terminal_window_update_geometry (TerminalWindow *window)
|
||||
GtkWidget *widget;
|
||||
GdkGeometry hints;
|
||||
GtkBorder padding;
|
||||
- int char_width;
|
||||
- int char_height;
|
||||
+ GtkRequisition toplevel_request, widget_request;
|
||||
+ int base_width, base_height;
|
||||
+ int char_width, char_height;
|
||||
|
||||
if (priv->active_screen == NULL)
|
||||
return;
|
||||
@@ -3596,8 +3597,14 @@ terminal_window_update_geometry (TerminalWindow *window)
|
||||
padding.top + padding.bottom != priv->old_base_height ||
|
||||
widget != (GtkWidget*) priv->old_geometry_widget)
|
||||
{
|
||||
- hints.base_width = padding.left + padding.right;
|
||||
- hints.base_height = padding.top + padding.bottom;
|
||||
+ gtk_widget_get_preferred_size (GTK_WIDGET (window), NULL, &toplevel_request);
|
||||
+ gtk_widget_get_preferred_size (widget, NULL, &widget_request);
|
||||
+
|
||||
+ base_width = toplevel_request.width - widget_request.width;
|
||||
+ base_height = toplevel_request.height - widget_request.height;
|
||||
+
|
||||
+ hints.base_width = base_width + padding.left + padding.right;
|
||||
+ hints.base_height = base_height + padding.top + padding.bottom;
|
||||
|
||||
#define MIN_WIDTH_CHARS 4
|
||||
#define MIN_HEIGHT_CHARS 1
|
||||
@@ -3605,12 +3612,12 @@ terminal_window_update_geometry (TerminalWindow *window)
|
||||
hints.width_inc = char_width;
|
||||
hints.height_inc = char_height;
|
||||
|
||||
- /* min size is min size of just the geometry widget, remember. */
|
||||
+ /* min size is min size of the whole window, remember. */
|
||||
hints.min_width = hints.base_width + hints.width_inc * MIN_WIDTH_CHARS;
|
||||
hints.min_height = hints.base_height + hints.height_inc * MIN_HEIGHT_CHARS;
|
||||
|
||||
gtk_window_set_geometry_hints (GTK_WINDOW (window),
|
||||
- widget,
|
||||
+ NULL,
|
||||
&hints,
|
||||
GDK_HINT_RESIZE_INC |
|
||||
GDK_HINT_MIN_SIZE |
|
||||
--
|
||||
2.8.1
|
||||
|
||||
From e517e6944d27f4975083eac1efbdad6687524f56 Mon Sep 17 00:00:00 2001
|
||||
From: Simon McVittie <smcv@debian.org>
|
||||
Date: Mon, 6 Jun 2016 09:40:32 +0100
|
||||
Subject: [PATCH 2/2] Replace no-op gtk_window_resize_to_geometry by
|
||||
calculating new size
|
||||
|
||||
Together with the previous commit, this fixes a regression in
|
||||
GNOME 3.20: anything that would alter the Terminal size, for example
|
||||
a font size change or the 80x24, 80x43 etc. menu items, did nothing.
|
||||
|
||||
Signed-off-by: Simon McVittie <smcv@debian.org>
|
||||
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=760944
|
||||
---
|
||||
src/terminal-window.c | 168 +++++++++++++++++++++++++++++++++++++++++---------
|
||||
1 file changed, 140 insertions(+), 28 deletions(-)
|
||||
|
||||
diff --git a/src/terminal-window.c b/src/terminal-window.c
|
||||
index 1e60697..82b1b10 100644
|
||||
--- a/src/terminal-window.c
|
||||
+++ b/src/terminal-window.c
|
||||
@@ -72,11 +72,30 @@ struct _TerminalWindowPrivate
|
||||
|
||||
GtkWidget *menubar;
|
||||
TerminalMdiContainer *mdi_container;
|
||||
+ GtkWidget *main_vbox;
|
||||
TerminalScreen *active_screen;
|
||||
+
|
||||
+ /* Size of a character cell in pixels */
|
||||
int old_char_width;
|
||||
int old_char_height;
|
||||
- int old_base_width;
|
||||
- int old_base_height;
|
||||
+
|
||||
+ /* Width and height added to the actual terminal grid by "chrome" inside
|
||||
+ * what was traditionally the X11 window: menu bar, title bar,
|
||||
+ * style-provided padding. This must be included when resizing the window
|
||||
+ * and also included in geometry hints. */
|
||||
+ int old_chrome_width;
|
||||
+ int old_chrome_height;
|
||||
+
|
||||
+ /* Width and height added to the window by client-side decorations.
|
||||
+ * This must be included in geometry hints but must not be included when
|
||||
+ * resizing the window. */
|
||||
+ int old_csd_width;
|
||||
+ int old_csd_height;
|
||||
+
|
||||
+ /* Width and height of the padding around the geometry widget. */
|
||||
+ int old_padding_width;
|
||||
+ int old_padding_height;
|
||||
+
|
||||
void *old_geometry_widget; /* only used for pointer value as it may be freed */
|
||||
|
||||
GtkWidget *confirm_close_dialog;
|
||||
@@ -88,6 +107,8 @@ struct _TerminalWindowPrivate
|
||||
guint disposed : 1;
|
||||
guint present_on_insert : 1;
|
||||
|
||||
+ guint realized : 1;
|
||||
+
|
||||
/* Workaround until gtk+ bug #535557 is fixed */
|
||||
guint icon_title_set : 1;
|
||||
};
|
||||
@@ -2287,6 +2308,12 @@ terminal_window_realize (GtkWidget *widget)
|
||||
/* Need to do this now since this requires the window to be realized */
|
||||
if (priv->active_screen != NULL)
|
||||
sync_screen_icon_title (priv->active_screen, NULL, window);
|
||||
+
|
||||
+ /* Now that we've been realized, we should know precisely how large the
|
||||
+ * client-side decorations are going to be. Recalculate the geometry hints,
|
||||
+ * export them to the windowing system, and resize the window accordingly. */
|
||||
+ priv->realized = TRUE;
|
||||
+ terminal_window_update_size (window);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@@ -2621,7 +2648,6 @@ terminal_window_init (TerminalWindow *window)
|
||||
GtkActionGroup *action_group;
|
||||
GtkAction *action;
|
||||
GtkUIManager *manager;
|
||||
- GtkWidget *main_vbox;
|
||||
GError *error;
|
||||
GtkWindowGroup *window_group;
|
||||
GtkAccelGroup *accel_group;
|
||||
@@ -2651,7 +2677,7 @@ terminal_window_init (TerminalWindow *window)
|
||||
|
||||
priv->active_screen = NULL;
|
||||
|
||||
- main_vbox = gtk_bin_get_child (GTK_BIN (window));
|
||||
+ priv->main_vbox = gtk_bin_get_child (GTK_BIN (window));
|
||||
|
||||
priv->mdi_container = TERMINAL_MDI_CONTAINER (terminal_notebook_new ());
|
||||
|
||||
@@ -2686,13 +2712,19 @@ terminal_window_init (TerminalWindow *window)
|
||||
g_signal_connect (priv->mdi_container, "create-window",
|
||||
G_CALLBACK (handle_tab_droped_on_desktop), window);
|
||||
|
||||
- gtk_box_pack_end (GTK_BOX (main_vbox), GTK_WIDGET (priv->mdi_container), TRUE, TRUE, 0);
|
||||
+ gtk_box_pack_end (GTK_BOX (priv->main_vbox), GTK_WIDGET (priv->mdi_container), TRUE, TRUE, 0);
|
||||
gtk_widget_show (GTK_WIDGET (priv->mdi_container));
|
||||
|
||||
priv->old_char_width = -1;
|
||||
priv->old_char_height = -1;
|
||||
- priv->old_base_width = -1;
|
||||
- priv->old_base_height = -1;
|
||||
+
|
||||
+ priv->old_chrome_width = -1;
|
||||
+ priv->old_chrome_height = -1;
|
||||
+ priv->old_csd_width = -1;
|
||||
+ priv->old_csd_height = -1;
|
||||
+ priv->old_padding_width = -1;
|
||||
+ priv->old_padding_height = -1;
|
||||
+
|
||||
priv->old_geometry_widget = NULL;
|
||||
|
||||
/* GAction setup */
|
||||
@@ -2753,7 +2785,7 @@ terminal_window_init (TerminalWindow *window)
|
||||
#endif
|
||||
|
||||
priv->menubar = gtk_ui_manager_get_widget (manager, "/menubar");
|
||||
- gtk_box_pack_start (GTK_BOX (main_vbox),
|
||||
+ gtk_box_pack_start (GTK_BOX (priv->main_vbox),
|
||||
priv->menubar,
|
||||
FALSE, FALSE, 0);
|
||||
|
||||
@@ -3209,13 +3241,41 @@ terminal_window_update_size (TerminalWindow *window)
|
||||
{
|
||||
TerminalWindowPrivate *priv = window->priv;
|
||||
int grid_width, grid_height;
|
||||
+ int pixel_width, pixel_height;
|
||||
+ GdkWindow *gdk_window;
|
||||
+
|
||||
+ gdk_window = gtk_widget_get_window (GTK_WIDGET (window));
|
||||
+
|
||||
+ if (gdk_window != NULL &&
|
||||
+ (gdk_window_get_state (gdk_window) &
|
||||
+ (GDK_WINDOW_STATE_MAXIMIZED | GDK_WINDOW_STATE_TILED)))
|
||||
+ {
|
||||
+ /* Don't adjust the size of maximized or tiled (snapped, half-maximized)
|
||||
+ * windows: if we do, there will be ugly gaps of up to 1 character cell
|
||||
+ * around otherwise tiled windows. */
|
||||
+ return;
|
||||
+ }
|
||||
|
||||
/* be sure our geometry is up-to-date */
|
||||
terminal_window_update_geometry (window);
|
||||
|
||||
terminal_screen_get_size (priv->active_screen, &grid_width, &grid_height);
|
||||
+ _terminal_debug_print (TERMINAL_DEBUG_GEOMETRY,
|
||||
+ "[window %p] size is %dx%d cells of %dx%d px\n",
|
||||
+ window, grid_width, grid_height,
|
||||
+ priv->old_char_width, priv->old_char_height);
|
||||
+
|
||||
+ /* the "old" struct members were updated by update_geometry */
|
||||
+ pixel_width = priv->old_chrome_width + grid_width * priv->old_char_width;
|
||||
+ pixel_height = priv->old_chrome_height + grid_height * priv->old_char_height;
|
||||
+ _terminal_debug_print (TERMINAL_DEBUG_GEOMETRY,
|
||||
+ "[window %p] %dx%d + %dx%d = %dx%d\n",
|
||||
+ window, grid_width * priv->old_char_width,
|
||||
+ grid_height * priv->old_char_height,
|
||||
+ priv->old_chrome_width, priv->old_chrome_height,
|
||||
+ pixel_width, pixel_height);
|
||||
|
||||
- gtk_window_resize_to_geometry (GTK_WINDOW (window), grid_width, grid_height);
|
||||
+ gtk_window_resize (GTK_WINDOW (window), pixel_width, pixel_height);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -3571,9 +3631,11 @@ terminal_window_update_geometry (TerminalWindow *window)
|
||||
GtkWidget *widget;
|
||||
GdkGeometry hints;
|
||||
GtkBorder padding;
|
||||
- GtkRequisition toplevel_request, widget_request;
|
||||
- int base_width, base_height;
|
||||
+ 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, csd_height;
|
||||
|
||||
if (priv->active_screen == NULL)
|
||||
return;
|
||||
@@ -3586,25 +3648,68 @@ terminal_window_update_geometry (TerminalWindow *window)
|
||||
* window, but that doesn't make too much sense.
|
||||
*/
|
||||
terminal_screen_get_cell_size (priv->active_screen, &char_width, &char_height);
|
||||
-
|
||||
+
|
||||
+ terminal_screen_get_size (priv->active_screen, &grid_width, &grid_height);
|
||||
+ _terminal_debug_print (TERMINAL_DEBUG_GEOMETRY, "%dx%d cells of %dx%d px = %dx%d px\n",
|
||||
+ grid_width, grid_height, char_width, char_height,
|
||||
+ char_width * grid_width, char_height * grid_height);
|
||||
+
|
||||
gtk_style_context_get_padding(gtk_widget_get_style_context(widget),
|
||||
gtk_widget_get_state_flags(widget),
|
||||
&padding);
|
||||
|
||||
- if (char_width != priv->old_char_width ||
|
||||
+ _terminal_debug_print (TERMINAL_DEBUG_GEOMETRY, "padding = %dx%d px\n",
|
||||
+ padding.left + padding.right,
|
||||
+ padding.top + padding.bottom);
|
||||
+
|
||||
+ gtk_widget_get_preferred_size (priv->main_vbox, NULL, &vbox_request);
|
||||
+ _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);
|
||||
+
|
||||
+ 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",
|
||||
+ widget_request.width, widget_request.height);
|
||||
+
|
||||
+ if (!priv->realized)
|
||||
+ {
|
||||
+ /* Don't actually set the geometry hints until we have been realized,
|
||||
+ * 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.
|
||||
+ *
|
||||
+ * Similarly, the size request doesn't seem to include the padding
|
||||
+ * until we've been redrawn at least once. Don't resize the window
|
||||
+ * until we've done that. */
|
||||
+ _terminal_debug_print (TERMINAL_DEBUG_GEOMETRY, "not realized yet\n");
|
||||
+ }
|
||||
+ else if (char_width != priv->old_char_width ||
|
||||
char_height != priv->old_char_height ||
|
||||
- padding.left + padding.right != priv->old_base_width ||
|
||||
- padding.top + padding.bottom != priv->old_base_height ||
|
||||
+ padding.left + padding.right != priv->old_padding_width ||
|
||||
+ padding.top + padding.bottom != priv->old_padding_height ||
|
||||
+ chrome_width != priv->old_chrome_width ||
|
||||
+ chrome_height != priv->old_chrome_height ||
|
||||
+ csd_width != priv->old_csd_width ||
|
||||
+ csd_height != priv->old_csd_height ||
|
||||
widget != (GtkWidget*) priv->old_geometry_widget)
|
||||
{
|
||||
- gtk_widget_get_preferred_size (GTK_WIDGET (window), NULL, &toplevel_request);
|
||||
- gtk_widget_get_preferred_size (widget, NULL, &widget_request);
|
||||
-
|
||||
- base_width = toplevel_request.width - widget_request.width;
|
||||
- base_height = toplevel_request.height - widget_request.height;
|
||||
-
|
||||
- hints.base_width = base_width + padding.left + padding.right;
|
||||
- hints.base_height = base_height + padding.top + padding.bottom;
|
||||
+ hints.base_width = chrome_width + csd_width;
|
||||
+ hints.base_height = chrome_height + csd_height;
|
||||
|
||||
#define MIN_WIDTH_CHARS 4
|
||||
#define MIN_HEIGHT_CHARS 1
|
||||
@@ -3632,11 +3737,9 @@ terminal_window_update_geometry (TerminalWindow *window)
|
||||
hints.min_height,
|
||||
hints.width_inc,
|
||||
hints.height_inc);
|
||||
-
|
||||
- priv->old_char_width = hints.width_inc;
|
||||
- priv->old_char_height = hints.height_inc;
|
||||
- priv->old_base_width = hints.base_width;
|
||||
- priv->old_base_height = hints.base_height;
|
||||
+
|
||||
+ priv->old_csd_width = csd_width;
|
||||
+ priv->old_csd_height = csd_height;
|
||||
priv->old_geometry_widget = widget;
|
||||
}
|
||||
else
|
||||
@@ -3645,6 +3748,15 @@ terminal_window_update_geometry (TerminalWindow *window)
|
||||
"[window %p] hints: increment unchanged, not setting\n",
|
||||
window);
|
||||
}
|
||||
+
|
||||
+ /* We need these for the size calculation in terminal_window_update_size()
|
||||
+ * (at least under GTK >= 3.19), so we set them unconditionally. */
|
||||
+ priv->old_char_width = char_width;
|
||||
+ priv->old_char_height = char_height;
|
||||
+ priv->old_chrome_width = chrome_width;
|
||||
+ priv->old_chrome_height = chrome_height;
|
||||
+ priv->old_padding_width = padding.left + padding.right;
|
||||
+ priv->old_padding_height = padding.top + padding.bottom;
|
||||
}
|
||||
|
||||
static void
|
||||
--
|
||||
2.8.1
|
||||
|
@ -1,3 +1,33 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 18 08:34:10 UTC 2016 - zaitor@opensuse.org
|
||||
|
||||
- Add gnome-terminal-fix-csd-calculation.patch: Revert window: Fix
|
||||
CSD size calculations with long titles. Taken from upstream git.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 16 17:54:41 UTC 2016 - zaitor@opensuse.org
|
||||
|
||||
- Update to version 3.21.90:
|
||||
+ window: Fix CSD size calculations with long titles.
|
||||
+ notebook: Make tabs nondetachable.
|
||||
+ Revert "notebook: avoid crash on tab DND".
|
||||
+ appdata: Use *.metainfo.xml as extension for the nautilus
|
||||
add-on.
|
||||
+ appdata: Add kudos for HiDpi, HighContrast and SearchProvider.
|
||||
+ all: Remove GRegex use and require PCRE2.
|
||||
+ window: Make geometry work better with gtk 3.20.
|
||||
+ window: Support animated and touch scrolling.
|
||||
+ Add 'Detach Terminal' action to tab context menu.
|
||||
+ Add Language headers to po files.
|
||||
+ Updated translations.
|
||||
- Enable pkconfig(pcre-2.8) BuildRequires: Now mandatory
|
||||
dependency, also drop disabled --with-pcre, no longer needed.
|
||||
- Drop gnome-terminal-resize-fix.patch
|
||||
gnome-terminal-profile-editor-initialize-palette.patch: Fixed
|
||||
upstream.
|
||||
- Keep gnome-terminal-notebook-avoid-crash-on-tab-DND.patch:
|
||||
Upstream reverted it, but we want it anyway.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jul 25 22:19:39 UTC 2016 - zaitor@opensuse.org
|
||||
|
||||
|
@ -17,19 +17,17 @@
|
||||
|
||||
|
||||
Name: gnome-terminal
|
||||
Version: 3.20.2
|
||||
Version: 3.21.90
|
||||
Release: 0
|
||||
Summary: GNOME Terminal
|
||||
License: GPL-3.0+ and LGPL-2.1+
|
||||
Group: System/X11/Terminals
|
||||
Url: http://www.gnome.org
|
||||
Source: http://download.gnome.org/sources/gnome-terminal/3.20/%{name}-%{version}.tar.xz
|
||||
# PATCH-FIX-UPSTREAM gnome-terminal-resize-fix.patch bgo#760944 zaitor@opensuse.org -- Fix resizing of gnome-terminal, patches from upstream bug.
|
||||
Patch0: gnome-terminal-resize-fix.patch
|
||||
# PATCH-FIX-UPSTREAM gnome-terminal-profile-editor-initialize-palette.patch bgo#768850 zaitor@opensuse.org -- profile: editor: Properly initialize the first palette color
|
||||
Patch1: gnome-terminal-profile-editor-initialize-palette.patch
|
||||
Source: http://download.gnome.org/sources/gnome-terminal/3.21/%{name}-%{version}.tar.xz
|
||||
# PATCH-FIX-UPSTREAM gnome-terminal-notebook-avoid-crash-on-tab-DND.patch bgo#769161 zaitor@opensuse.org -- notebook: avoid crash on tab DND
|
||||
Patch2: gnome-terminal-notebook-avoid-crash-on-tab-DND.patch
|
||||
Patch0: gnome-terminal-notebook-avoid-crash-on-tab-DND.patch
|
||||
# PATCH-FIX-UPSTREAM gnome-terminal-fix-csd-calculation.patch zaitor@opensuse.org -- Revert commit to keep gt from shrinking in certain situations.
|
||||
Patch1: gnome-terminal-fix-csd-calculation.patch
|
||||
BuildRequires: fdupes
|
||||
# Needed for search provider. It should not be needed in my opionion, we have to take this up with upstream, or just provide search provider interface definition file as source.
|
||||
BuildRequires: gnome-shell
|
||||
@ -47,10 +45,9 @@ BuildRequires: pkgconfig(glib-2.0) >= 2.42.0
|
||||
BuildRequires: pkgconfig(gsettings-desktop-schemas)
|
||||
BuildRequires: pkgconfig(gtk+-3.0) >= 3.19.8
|
||||
BuildRequires: pkgconfig(libnautilus-extension) >= 3.0.0
|
||||
# Temp disabled as pcre support in vte got disabled, NB when reenabling, make sure to remove --without-pcre2 from configure.
|
||||
#BuildRequires: pkgconfig(libpcre2-8) >= 10.00
|
||||
BuildRequires: pkgconfig(libpcre2-8) >= 10.00
|
||||
BuildRequires: pkgconfig(uuid)
|
||||
BuildRequires: pkgconfig(vte-2.91) >= 0.44.2
|
||||
BuildRequires: pkgconfig(vte-2.91) >= 0.45.90
|
||||
BuildRequires: pkgconfig(x11)
|
||||
Recommends: %{name}-lang
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
@ -89,13 +86,11 @@ arbitrary folders.
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
translation-update-upstream
|
||||
|
||||
%build
|
||||
%configure \
|
||||
--disable-static \
|
||||
--without-pcre2 \
|
||||
%if !0%{?sle_version}
|
||||
--disable-migration \
|
||||
%endif
|
||||
@ -144,7 +139,7 @@ rm -rf %{buildroot}
|
||||
%files -n nautilus-extension-terminal
|
||||
%defattr(-,root,root)
|
||||
%{_libdir}/nautilus/extensions-3.0/libterminal-nautilus.so
|
||||
%{_datadir}/appdata/org.gnome.Terminal.Nautilus.appdata.xml
|
||||
%{_datadir}/appdata/org.gnome.Terminal.Nautilus.metainfo.xml
|
||||
|
||||
%files lang -f %{name}.lang
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user