summaryrefslogtreecommitdiff
path: root/src/terminal-window.c
diff options
context:
space:
mode:
authorPablo Barciela <[email protected]>2017-01-30 23:34:19 +0100
committerPablo Barciela <[email protected]>2017-01-30 23:34:19 +0100
commit64dd47f16bda6beb5b5c60ac8ddccd7d0c97f9ce (patch)
tree2e315e7d51de4b565e8d943792febb28125edc15 /src/terminal-window.c
parent371be35f994378dfb61796a272061d1cb4be3d26 (diff)
downloadmate-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
Diffstat (limited to 'src/terminal-window.c')
-rw-r--r--src/terminal-window.c17
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));