[gedit] Factor out gedit_multi_notebook_get_notebook_for_tab
- From: Ignacio Casal Quinteiro <icq src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit] Factor out gedit_multi_notebook_get_notebook_for_tab
- Date: Tue, 12 Nov 2013 19:56:23 +0000 (UTC)
commit 33b413a66dc14c685211e8fd2b12fbdee18badb8
Author: Ignacio Casal Quinteiro <icq gnome org>
Date: Tue Nov 12 09:12:22 2013 +0100
Factor out gedit_multi_notebook_get_notebook_for_tab
gedit/gedit-multi-notebook.c | 59 +++++++++++++++++++++++++----------------
gedit/gedit-multi-notebook.h | 3 ++
2 files changed, 39 insertions(+), 23 deletions(-)
---
diff --git a/gedit/gedit-multi-notebook.c b/gedit/gedit-multi-notebook.c
index 1db661b..2010db2 100644
--- a/gedit/gedit-multi-notebook.c
+++ b/gedit/gedit-multi-notebook.c
@@ -598,6 +598,33 @@ gedit_multi_notebook_get_nth_notebook (GeditMultiNotebook *mnb,
return g_list_nth_data (mnb->priv->notebooks, notebook_num);
}
+GeditNotebook *
+gedit_multi_notebook_get_notebook_for_tab (GeditMultiNotebook *mnb,
+ GeditTab *tab)
+{
+ GList *l;
+ gint page_num;
+
+ g_return_val_if_fail (GEDIT_IS_MULTI_NOTEBOOK (mnb), NULL);
+ g_return_val_if_fail (GEDIT_IS_TAB (tab), NULL);
+
+ l = mnb->priv->notebooks;
+
+ do
+ {
+ page_num = gtk_notebook_page_num (GTK_NOTEBOOK (l->data),
+ GTK_WIDGET (tab));
+ if (page_num != -1)
+ break;
+
+ l = g_list_next (l);
+ } while (l != NULL && page_num == -1);
+
+ g_return_val_if_fail (page_num != -1, NULL);
+
+ return GEDIT_NOTEBOOK (l->data);
+}
+
gint
gedit_multi_notebook_get_notebook_num (GeditMultiNotebook *mnb,
GeditNotebook *notebook)
@@ -669,7 +696,7 @@ gedit_multi_notebook_set_active_tab (GeditMultiNotebook *mnb,
do
{
page_num = gtk_notebook_page_num (GTK_NOTEBOOK (l->data),
- GTK_WIDGET (tab));
+ GTK_WIDGET (tab));
if (page_num != -1)
break;
@@ -678,8 +705,7 @@ gedit_multi_notebook_set_active_tab (GeditMultiNotebook *mnb,
g_return_if_fail (page_num != -1);
- gtk_notebook_set_current_page (GTK_NOTEBOOK (l->data),
- page_num);
+ gtk_notebook_set_current_page (GTK_NOTEBOOK (l->data), page_num);
if (GTK_WIDGET (l->data) != mnb->priv->active_notebook)
{
@@ -839,8 +865,7 @@ gedit_multi_notebook_add_new_notebook_with_tab (GeditMultiNotebook *mnb,
GeditTab *tab)
{
GtkWidget *notebook;
- gint page_num;
- GList *l;
+ GeditNotebook *old_notebook;
g_return_if_fail (GEDIT_IS_MULTI_NOTEBOOK (mnb));
g_return_if_fail (GEDIT_IS_TAB (tab));
@@ -848,34 +873,22 @@ gedit_multi_notebook_add_new_notebook_with_tab (GeditMultiNotebook *mnb,
notebook = gedit_notebook_new ();
add_notebook (mnb, notebook, FALSE);
- l = mnb->priv->notebooks;
-
- do
- {
- page_num = gtk_notebook_page_num (GTK_NOTEBOOK (l->data),
- GTK_WIDGET (tab));
- if (page_num != -1)
- break;
-
- l = g_list_next (l);
- } while (l != NULL && page_num == -1);
-
- g_return_if_fail (page_num != -1);
+ old_notebook = gedit_multi_notebook_get_notebook_for_tab (mnb, tab);
/* When gtk_notebook_insert_page is called the focus is set in
the notebook, we don't want this to happen until the page is added.
Also we don't want to call switch_page when we add the tab
but when we switch the notebook. */
- g_signal_handlers_block_by_func (l->data, notebook_set_focus, mnb);
- g_signal_handlers_block_by_func (l->data, notebook_switch_page, mnb);
+ g_signal_handlers_block_by_func (old_notebook, notebook_set_focus, mnb);
+ g_signal_handlers_block_by_func (old_notebook, notebook_switch_page, mnb);
- gedit_notebook_move_tab (GEDIT_NOTEBOOK (l->data),
+ gedit_notebook_move_tab (old_notebook,
GEDIT_NOTEBOOK (notebook),
tab,
-1);
- g_signal_handlers_unblock_by_func (l->data, notebook_switch_page, mnb);
- g_signal_handlers_unblock_by_func (l->data, notebook_set_focus, mnb);
+ g_signal_handlers_unblock_by_func (old_notebook, notebook_switch_page, mnb);
+ g_signal_handlers_unblock_by_func (old_notebook, notebook_set_focus, mnb);
notebook_set_focus (GTK_CONTAINER (notebook), NULL, mnb);
}
diff --git a/gedit/gedit-multi-notebook.h b/gedit/gedit-multi-notebook.h
index faa92b0..6d09169 100644
--- a/gedit/gedit-multi-notebook.h
+++ b/gedit/gedit-multi-notebook.h
@@ -95,6 +95,9 @@ gint gedit_multi_notebook_get_n_notebooks (GeditMultiNotebook
*mnb);
GeditNotebook *gedit_multi_notebook_get_nth_notebook (GeditMultiNotebook *mnb,
gint notebook_num);
+GeditNotebook *gedit_multi_notebook_get_notebook_for_tab (GeditMultiNotebook *mnb,
+ GeditTab *tab);
+
gint gedit_multi_notebook_get_notebook_num (GeditMultiNotebook *mnb,
GeditNotebook *notebook);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]