summaryrefslogtreecommitdiffstats
path: root/src/notebook.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/notebook.c')
-rw-r--r--src/notebook.c27
1 files changed, 23 insertions, 4 deletions
diff --git a/src/notebook.c b/src/notebook.c
index b99adba..ffda497 100644
--- a/src/notebook.c
+++ b/src/notebook.c
@@ -129,7 +129,7 @@ switch_page_cb(MqNotebook *notebook, MqTabPage *page,
static void
new_tab_clicked_cb(GtkWidget G_GNUC_UNUSED *button, MqNotebook *notebook)
{
- mq_notebook_insert_child(notebook, NULL, notebook->current_page);
+ mq_notebook_insert_child(notebook, NULL, notebook->current_page, TRUE);
}
static void
@@ -347,7 +347,8 @@ insert_page(MqNotebook *notebook, MqTabTree *node, const gchar *uri)
}
MqTabPage *
-mq_notebook_insert_top(MqNotebook *notebook, const gchar *uri)
+mq_notebook_insert_top(MqNotebook *notebook, const gchar *uri,
+ gboolean foreground)
{
MqTabTree *node;
@@ -358,12 +359,18 @@ mq_notebook_insert_top(MqNotebook *notebook, const gchar *uri)
insert_page(notebook, node, uri);
+ if (foreground) {
+ notebook->current_page = node->page;
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook),
+ mq_tree_position(node) - 1);
+ }
+
return node->page;
}
MqTabPage *
mq_notebook_insert_sibling(MqNotebook *notebook, const gchar *uri,
- MqTabPage *sibling)
+ MqTabPage *sibling, gboolean foreground)
{
MqTabTree *node;
@@ -377,12 +384,18 @@ mq_notebook_insert_sibling(MqNotebook *notebook, const gchar *uri,
insert_page(notebook, node, uri);
+ if (foreground) {
+ notebook->current_page = node->page;
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook),
+ mq_tree_position(node) - 1);
+ }
+
return node->page;
}
MqTabPage *
mq_notebook_insert_child(MqNotebook *notebook, const gchar *uri,
- MqTabPage *child)
+ MqTabPage *child, gboolean foreground)
{
MqTabTree *node;
@@ -396,6 +409,12 @@ mq_notebook_insert_child(MqNotebook *notebook, const gchar *uri,
insert_page(notebook, node, uri);
+ if (foreground) {
+ notebook->current_page = node->page;
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook),
+ mq_tree_position(node) - 1);
+ }
+
return node->page;
}