summaryrefslogtreecommitdiffstats
path: root/src/notebook.c
diff options
context:
space:
mode:
authorPatrick McDermott <pj@pehjota.net>2017-10-24 04:41:19 (EDT)
committer Patrick McDermott <pj@pehjota.net>2017-10-24 04:41:19 (EDT)
commitd1ce1afc2240cfdeda48a23dd616a398ec336a72 (patch)
tree1683d10717f292071077869d3236d0de91bbd822 /src/notebook.c
parentd79413597539863361033c032f8697896231a7fc (diff)
downloadmarquee-d1ce1afc2240cfdeda48a23dd616a398ec336a72.zip
marquee-d1ce1afc2240cfdeda48a23dd616a398ec336a72.tar.gz
marquee-d1ce1afc2240cfdeda48a23dd616a398ec336a72.tar.bz2
mq_notebook_insert_*(): Optionally switch to new tab
And update calls.
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;
}