From 46f01bff59073905a01c799219fd0118c041f9c7 Mon Sep 17 00:00:00 2001 From: Colomban Wendling Date: Tue, 27 May 2014 17:55:00 +0200 Subject: [PATCH] Properly mirror document_get_from_page() in document_get_notebook_page() Now document_get_from_page() supports arbitrary nesting inside the notebook page, update document_get_notebook_page() to support it also, by searching up for the direct notebook child rather than assuming it is the ScintillaWidget's direct parent. --- src/document.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/document.c b/src/document.c index 69e67281a..fce4d8d67 100644 --- a/src/document.c +++ b/src/document.c @@ -222,13 +222,20 @@ GeanyDocument *document_find_by_sci(ScintillaObject *sci) gint document_get_notebook_page(GeanyDocument *doc) { GtkWidget *parent; + GtkWidget *child; g_return_val_if_fail(doc != NULL, -1); - parent = gtk_widget_get_parent(GTK_WIDGET(doc->editor->sci)); - g_return_val_if_fail(GTK_IS_BOX(parent), -1); + child = GTK_WIDGET(doc->editor->sci); + parent = gtk_widget_get_parent(child); + /* search for the direct notebook child, mirroring document_get_from_page() */ + while (parent && ! GTK_IS_NOTEBOOK(parent)) + { + child = parent; + parent = gtk_widget_get_parent(child); + } - return gtk_notebook_page_num(GTK_NOTEBOOK(main_widgets.notebook), parent); + return gtk_notebook_page_num(GTK_NOTEBOOK(main_widgets.notebook), child); } -- 2.11.4.GIT