diff options
author | Pablo Barciela <[email protected]> | 2017-01-30 23:34:19 +0100 |
---|---|---|
committer | Pablo Barciela <[email protected]> | 2017-01-30 23:34:19 +0100 |
commit | 64dd47f16bda6beb5b5c60ac8ddccd7d0c97f9ce (patch) | |
tree | 2e315e7d51de4b565e8d943792febb28125edc15 | |
parent | 371be35f994378dfb61796a272061d1cb4be3d26 (diff) | |
download | mate-terminal-64dd47f16bda6beb5b5c60ac8ddccd7d0c97f9ce.tar.bz2 mate-terminal-64dd47f16bda6beb5b5c60ac8ddccd7d0c97f9ce.tar.xz |
call gtk_notebook_detach_tab only if the tab is detached
Fixes:
https://bugzilla.redhat.com/show_bug.cgi?id=1398234
-rw-r--r-- | src/terminal-window.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/terminal-window.c b/src/terminal-window.c index d1019b1..7253eb1 100644 --- a/src/terminal-window.c +++ b/src/terminal-window.c @@ -44,6 +44,8 @@ #include "skey-popup.h" #endif +static gboolean detach_tab = FALSE; + struct _TerminalWindowPrivate { GtkActionGroup *action_group; @@ -2637,8 +2639,15 @@ terminal_window_remove_screen (TerminalWindow *window, screen_container = terminal_screen_container_get_from_screen (screen); #if GTK_CHECK_VERSION(3, 16, 0) - gtk_notebook_detach_tab (GTK_NOTEBOOK (priv->notebook), - GTK_WIDGET (screen_container)); + if (detach_tab) + { + gtk_notebook_detach_tab (GTK_NOTEBOOK (priv->notebook), + GTK_WIDGET (screen_container)); + detach_tab = FALSE; + } + else + gtk_container_remove (GTK_CONTAINER (priv->notebook), + GTK_WIDGET (screen_container)); #else gtk_container_remove (GTK_CONTAINER (priv->notebook), GTK_WIDGET (screen_container)); @@ -2669,6 +2678,9 @@ terminal_window_move_screen (TerminalWindow *source_window, */ g_object_ref_sink (screen_container); g_object_ref_sink (screen); + + detach_tab = TRUE; + terminal_window_remove_screen (source_window, screen); /* Now we can safely remove the screen from the container and let the container die */ @@ -2922,7 +2934,6 @@ notebook_button_press_cb (GtkWidget *widget, { update_tab_visibility (window, -1); gtk_notebook_remove_page(notebook, tab_clicked); - } later_pages = gtk_notebook_get_n_pages (GTK_NOTEBOOK (notebook)); |