diff options
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 |