diff options
author | 2011-11-01 20:32:27 +0800 | |
---|---|---|
committer | 2011-11-03 18:52:48 +0100 | |
commit | 68e5d9028ed55cc2dc4fc8d9274ae74a07a304e4 (patch) | |
tree | 2e5fd2f6d38a4a376d2fb87756adb32c65eb9b87 | |
parent | dadc370fceaa3d4ffe329ba06d3ebb0b2c4d8308 (diff) |
Implemented move tab to right
Use a easy (and not hard to understand) way to move:
If it's the last tab, abort
click the tab right of it
move it to left and click it
click the tab right of it
-rw-r--r-- | plugins/gtkui/widgets.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/plugins/gtkui/widgets.c b/plugins/gtkui/widgets.c index c0856e3c..26d2524e 100644 --- a/plugins/gtkui/widgets.c +++ b/plugins/gtkui/widgets.c @@ -745,12 +745,27 @@ on_move_tab_left_activate (GtkMenuItem *menuitem, gpointer user_data) { gtk_notebook_insert_page (GTK_NOTEBOOK (w->base.widget), newchild->widget, eventbox, w->clicked_page-1); gtk_notebook_set_page (GTK_NOTEBOOK (w->base.widget), w->clicked_page-1); + w->clicked_page--; break; } prev = c; } } +static void +on_move_tab_right_activate (GtkMenuItem *menuitem, gpointer user_data) { + w_tabs_t *w = user_data; + + int i = 0; + for (ddb_gtkui_widget_t *c = w->base.children; c; c = c->next, i++); + if (w->clicked_page >= i) + return; + + gtk_notebook_set_page (GTK_NOTEBOOK (w->base.widget), ++w->clicked_page); + on_move_tab_left_activate (menuitem, user_data); + gtk_notebook_set_page (GTK_NOTEBOOK (w->base.widget), ++w->clicked_page); +} + static gboolean tab_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { if (event->button != 3) { @@ -773,6 +788,9 @@ tab_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_ item = gtk_menu_item_new_with_mnemonic (_("Move tab right")); gtk_widget_show (item); gtk_container_add (GTK_CONTAINER (menu), item); + g_signal_connect ((gpointer) item, "activate", + G_CALLBACK (on_move_tab_right_activate), + w); item = gtk_menu_item_new_with_mnemonic (_("Remove tab")); gtk_widget_show (item); |