From 5e8cb62d66d03c457fd155d92256f4ab6cc8f62b Mon Sep 17 00:00:00 2001
From: Patrick McDermott <pj@pehjota.net>
Date: Mon, 23 Oct 2017 07:36:58 -0400
Subject: MqNotebook: Update positions of tabs after inserted tab

---
(limited to 'src')

diff --git a/src/notebook.c b/src/notebook.c
index 305a2da..fc39d20 100644
--- a/src/notebook.c
+++ b/src/notebook.c
@@ -200,6 +200,15 @@ find_node(MqNotebook *notebook, MqTabPage *page)
 	g_assert(notebook->found_node);
 }
 
+static gboolean
+update_position(MqTree *node, gpointer G_GNUC_UNUSED user_data)
+{
+	mq_tab_page_set_position (MQ_TAB_TREE(node)->page,  node->position);
+	mq_tab_label_set_position(MQ_TAB_TREE(node)->label, node->position);
+
+	return MQ_TREE_CONTINUE;
+}
+
 static void
 insert_page(MqNotebook *notebook, MqTabTree *node, const gchar *uri)
 {
@@ -217,8 +226,7 @@ insert_page(MqNotebook *notebook, MqTabTree *node, const gchar *uri)
 	gtk_widget_show_all(GTK_WIDGET(node->page));
 	gtk_widget_show_all(GTK_WIDGET(node->label));
 
-	mq_tab_page_set_position (node->page,  MQ_TREE(node)->position);
-	mq_tab_label_set_position(node->label, MQ_TREE(node)->position);
+	mq_tree_foreach_from(MQ_TREE(node), update_position, NULL);
 }
 
 MqTabPage *
--
cgit v0.9.1