diff options
author | Patrick McDermott <pj@pehjota.net> | 2017-10-24 04:41:19 (EDT) |
---|---|---|
committer | Patrick McDermott <pj@pehjota.net> | 2017-10-24 04:41:19 (EDT) |
commit | d1ce1afc2240cfdeda48a23dd616a398ec336a72 (patch) | |
tree | 1683d10717f292071077869d3236d0de91bbd822 /src/notebook.c | |
parent | d79413597539863361033c032f8697896231a7fc (diff) | |
download | marquee-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.c | 27 |
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; } |