diff options
author | Stefano Karapetsas <[email protected]> | 2014-01-16 15:58:24 +0100 |
---|---|---|
committer | Stefano Karapetsas <[email protected]> | 2014-01-16 15:58:24 +0100 |
commit | a3d9254d7354bc959ea1d134c5cb66e3622a753c (patch) | |
tree | 5e72acf8c11baa78f1606895df5ecc6af07d7bcb /src | |
parent | 8c3fa1197260efd1f3d5b4322d0197bff8014595 (diff) | |
download | mate-terminal-a3d9254d7354bc959ea1d134c5cb66e3622a753c.tar.bz2 mate-terminal-a3d9254d7354bc959ea1d134c5cb66e3622a753c.tar.xz |
Fix resizing with GTK3
Taken from https://git.gnome.org/browse/gnome-terminal/commit/?h=gnome-3-0&id=8e6454b0efc01cf212f338c76d5d0557575f9513
Close #36 (https://github.com/mate-desktop/mate-terminal/issues/36)
Diffstat (limited to 'src')
-rw-r--r-- | src/terminal-window.c | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/terminal-window.c b/src/terminal-window.c index 69b953c..92436bd 100644 --- a/src/terminal-window.c +++ b/src/terminal-window.c @@ -2702,17 +2702,19 @@ terminal_window_set_size_force_grid (TerminalWindow *window, int force_grid_width, int force_grid_height) { - /* Owen's hack from mate-terminal */ GtkWidget *widget; GtkWidget *app; + int grid_width; + int grid_height; +#if !GTK_CHECK_VERSION (3, 0, 0) + /* Owen's hack from gnome-terminal */ GtkRequisition toplevel_request; GtkRequisition widget_request; int w, h; int char_width; int char_height; - int grid_width; - int grid_height; GtkBorder *inner_border = NULL; +#endif /* be sure our geometry is up-to-date */ terminal_window_update_geometry (window); @@ -2722,6 +2724,18 @@ terminal_window_set_size_force_grid (TerminalWindow *window, app = gtk_widget_get_toplevel (widget); g_assert (app != NULL); +#if GTK_CHECK_VERSION (3, 0, 0) + terminal_screen_get_size (screen, &grid_width, &grid_height); + + if (force_grid_width >= 0) + grid_width = force_grid_width; + if (force_grid_height >= 0) + grid_height = force_grid_height; + if (even_if_mapped && gtk_widget_get_mapped (app)) + gtk_window_resize_to_geometry (GTK_WINDOW (app), grid_width, grid_height); + else + gtk_window_set_default_geometry (GTK_WINDOW (app), grid_width, grid_height); +#else gtk_widget_size_request (app, &toplevel_request); gtk_widget_size_request (widget, &widget_request); @@ -2761,6 +2775,7 @@ terminal_window_set_size_force_grid (TerminalWindow *window, { gtk_window_set_default_size (GTK_WINDOW (app), w, h); } +#endif } void |