[gedit] Don't update sensitivity on wrong tab when a tab is removed
- From: Sebastien Lafargue <slafargue src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit] Don't update sensitivity on wrong tab when a tab is removed
- Date: Fri, 14 Mar 2014 12:02:31 +0000 (UTC)
commit a41925a91d6ccb2d4f874cfe0ac1ca7b9d021102
Author: Sebastien Lafargue <slafargue src gnome org>
Date: Fri Mar 14 12:58:56 2014 +0100
Don't update sensitivity on wrong tab when a tab is removed
When a tab is removed, sensitivity is updated on the active tab
but at this time, the active tab is the removed tab, so we end with this :
CRITICAL **: update_next_prev_doc_sensitivity: assertion 'tab_number >= 0' failed
( searching a tab who is not in the active notebook return a tab_number of -1 )
gedit/gedit-multi-notebook.c | 9 ++++++++-
gedit/gedit-window.c | 3 +++
2 files changed, 11 insertions(+), 1 deletions(-)
---
diff --git a/gedit/gedit-multi-notebook.c b/gedit/gedit-multi-notebook.c
index 178787d..00d81bb 100644
--- a/gedit/gedit-multi-notebook.c
+++ b/gedit/gedit-multi-notebook.c
@@ -814,7 +814,14 @@ gedit_multi_notebook_set_active_tab (GeditMultiNotebook *mnb,
gint page_num;
g_return_if_fail (GEDIT_IS_MULTI_NOTEBOOK (mnb));
- g_return_if_fail (GEDIT_IS_TAB (tab));
+ g_return_if_fail (GEDIT_IS_TAB (tab) || tab == NULL);
+
+ if (tab == NULL)
+ {
+ mnb->priv->active_tab = NULL;
+
+ return;
+ }
if (tab == GEDIT_TAB (mnb->priv->active_tab))
return;
diff --git a/gedit/gedit-window.c b/gedit/gedit-window.c
index bf7f25b..5701ca6 100644
--- a/gedit/gedit-window.c
+++ b/gedit/gedit-window.c
@@ -456,6 +456,7 @@ update_next_prev_doc_sensitivity_per_window (GeditWindow *window)
gedit_debug (DEBUG_WINDOW);
tab = gedit_window_get_active_tab (window);
+
if (tab != NULL)
{
update_next_prev_doc_sensitivity (window, tab);
@@ -2209,6 +2210,8 @@ on_tab_removed (GeditMultiNotebook *multi,
g_signal_handler_disconnect (doc, window->priv->language_changed_id);
window->priv->language_changed_id = 0;
}
+
+ gedit_multi_notebook_set_active_tab (multi, NULL);
}
g_return_if_fail (num_tabs >= 0);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]