diff options
Diffstat (limited to '0001-window-Exit-early-from-screen-removed-handler-for-no.patch')
-rw-r--r-- | 0001-window-Exit-early-from-screen-removed-handler-for-no.patch | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/0001-window-Exit-early-from-screen-removed-handler-for-no.patch b/0001-window-Exit-early-from-screen-removed-handler-for-no.patch deleted file mode 100644 index 67074dc5080c..000000000000 --- a/0001-window-Exit-early-from-screen-removed-handler-for-no.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 44c6df308a2e5c331b44797c8537da430bb92df7 Mon Sep 17 00:00:00 2001 -From: Christian Persch <chpe@gnome.org> -Date: Sat, 19 Sep 2015 16:58:34 +0200 -Subject: [PATCH] window: Exit early from screen-removed handler for now empty - notebook - -When the notebook is now empty, it's not necessary to change anything else -since the window will be closed right away. Since GtkNotebook doesn't send -the switch-page signal when removing the last and only screen in the notebook, -priv->active_tab will point to an already freed object, which causes a -crash when the window tries to update itself for the new active tab. - -https://bugzilla.gnome.org/show_bug.cgi?id=755240 -(cherry picked from commit c8704ba3fef98d4acd59ec061566ff540b77c528) ---- - src/terminal-window.c | 20 +++++++++++++++----- - 1 file changed, 15 insertions(+), 5 deletions(-) - -diff --git a/src/terminal-window.c b/src/terminal-window.c -index e065ac1de49d..91279663fb50 100644 ---- a/src/terminal-window.c -+++ b/src/terminal-window.c -@@ -3468,10 +3468,24 @@ mdi_screen_removed_cb (TerminalMdiContainer *container, - G_CALLBACK (screen_close_cb), - window); - -+ /* We already got a switch-page signal whose handler sets the active tab to the -+ * new active tab, unless this screen was the only one in the notebook, so -+ * priv->active_tab is valid here. -+ */ -+ -+ pages = terminal_mdi_container_get_n_screens (container); -+ if (pages == 0) -+ { -+ priv->active_screen = NULL; -+ -+ /* That was the last tab in the window; close it. */ -+ gtk_widget_destroy (GTK_WIDGET (window)); -+ return; -+ } -+ - terminal_window_update_tabs_menu_sensitivity (window); - terminal_window_update_search_sensitivity (screen, window); - -- pages = terminal_mdi_container_get_n_screens (container); - if (pages == 1) - { - TerminalScreen *active_screen = terminal_mdi_container_get_active_screen (container); -@@ -3479,10 +3493,6 @@ mdi_screen_removed_cb (TerminalMdiContainer *container, - - terminal_window_update_size (window); - } -- else if (pages == 0) -- { -- gtk_widget_destroy (GTK_WIDGET (window)); -- } - } - - gboolean --- -2.1.0 - |