[Xfce4-commits] <midori:master> Add TabMoveFirst/Last hotkeys on Ctrl+Shift+Home/End

Christian Dywan noreply at xfce.org
Sat Dec 8 13:44:01 CET 2012


Updating branch refs/heads/master
         to cb9900d237be9ee9310c0b69e61606cce88d740c (commit)
       from 74885402f324eef93a34f725c884a63cbcbc5a02 (commit)

commit cb9900d237be9ee9310c0b69e61606cce88d740c
Author: Christian Dywan <christian at twotoasts.de>
Date:   Sat Dec 8 13:41:38 2012 +0100

    Add TabMoveFirst/Last hotkeys on Ctrl+Shift+Home/End

 midori/midori-browser.c |   56 +++++++++++++++++++++++++---------------------
 tests/app.vala          |    2 +-
 tests/tab.vala          |    4 ++-
 3 files changed, 34 insertions(+), 28 deletions(-)

diff --git a/midori/midori-browser.c b/midori/midori-browser.c
index 0d5ff7a..6102b03 100644
--- a/midori/midori-browser.c
+++ b/midori/midori-browser.c
@@ -4515,37 +4515,35 @@ _action_inspect_page_activate (GtkAction*     action,
 }
 
 static void
-_action_tab_move_backward_activate (GtkAction*     action,
-                                    MidoriBrowser* browser)
+_action_tab_move_activate (GtkAction*     action,
+                           MidoriBrowser* browser)
 {
+    const gchar* name = gtk_action_get_name (action);
     gint new_pos;
     gint cur_pos = midori_browser_get_current_page (browser);
     GtkWidget* widget = midori_browser_get_nth_tab (browser, cur_pos);
-    if (cur_pos > 0)
-        new_pos = cur_pos - 1;
-    else
-        new_pos = midori_browser_get_n_pages (browser) - 1;
-    #ifdef HAVE_GRANITE
-    granite_widgets_dynamic_notebook_set_tab_position (
-        GRANITE_WIDGETS_DYNAMIC_NOTEBOOK (browser->notebook),
-        midori_view_get_tab (MIDORI_VIEW (widget)), new_pos);
-    #else
-    gtk_notebook_reorder_child (GTK_NOTEBOOK (browser->notebook), widget, new_pos);
-    #endif
-    g_signal_emit (browser, signals[MOVE_TAB], 0, browser->notebook, cur_pos, new_pos);
-}
 
-static void
-_action_tab_move_forward_activate (GtkAction*     action,
-                                   MidoriBrowser* browser)
-{
-    gint new_pos;
-    gint cur_pos = midori_browser_get_current_page (browser);
-    GtkWidget* widget = midori_browser_get_nth_tab (browser, cur_pos);
-    if (cur_pos == (midori_browser_get_n_pages (browser) - 1))
+    if (!strcmp (name, "TabMoveFirst"))
         new_pos = 0;
+    else if (!strcmp (name, "TabMoveBackward"))
+    {
+        if (cur_pos > 0)
+            new_pos = cur_pos - 1;
+        else
+            new_pos = midori_browser_get_n_pages (browser) - 1;
+    }
+    else if (!strcmp (name, "TabMoveForward"))
+    {
+        if (cur_pos == (midori_browser_get_n_pages (browser) - 1))
+            new_pos = 0;
+        else
+            new_pos = cur_pos + 1;
+    }
+    else if (!strcmp (name, "TabMoveLast"))
+        new_pos = midori_browser_get_n_pages (browser) - 1;
     else
-        new_pos = cur_pos + 1;
+        g_assert_not_reached ();
+
     #ifdef HAVE_GRANITE
     granite_widgets_dynamic_notebook_set_tab_position (
         GRANITE_WIDGETS_DYNAMIC_NOTEBOOK (browser->notebook),
@@ -5349,10 +5347,14 @@ static const GtkActionEntry entries[] =
     { "TabNext", GTK_STOCK_GO_FORWARD,
         N_("_Next Tab"), "<Ctrl>Page_Down",
         NULL, G_CALLBACK (_action_tab_next_activate) },
+    { "TabMoveFirst", NULL, N_("Move Tab to _first position"), "<Ctrl><Shift>Home",
+       NULL, G_CALLBACK (_action_tab_move_activate) },
     { "TabMoveBackward", NULL, N_("Move Tab _Backward"), "<Ctrl><Shift>Page_Up",
-       NULL, G_CALLBACK (_action_tab_move_backward_activate) },
+       NULL, G_CALLBACK (_action_tab_move_activate) },
     { "TabMoveForward", NULL, N_("_Move Tab Forward"), "<Ctrl><Shift>Page_Down",
-       NULL, G_CALLBACK (_action_tab_move_forward_activate) },
+       NULL, G_CALLBACK (_action_tab_move_activate) },
+    { "TabMoveLast", NULL, N_("Move Tab to _last position"), "<Ctrl><Shift>End",
+       NULL, G_CALLBACK (_action_tab_move_activate) },
     { "TabCurrent", NULL,
         N_("Focus _Current Tab"), "<Ctrl><Alt>Home",
         NULL, G_CALLBACK (_action_tab_current_activate) },
@@ -5689,8 +5691,10 @@ static const gchar* ui_markup =
            *somewhere* in the UI definition */
         /* These also show up in Unity's HUD */
         "<menu action='Dummy'>"
+            "<menuitem action='TabMoveFirst'/>"
             "<menuitem action='TabMoveBackward'/>"
             "<menuitem action='TabMoveForward'/>"
+            "<menuitem action='TabMoveLast'/>"
             "<menuitem action='ScrollLeft'/>"
             "<menuitem action='ScrollDown'/>"
             "<menuitem action='ScrollUp'/>"
diff --git a/tests/app.vala b/tests/app.vala
index 774721a..d6b9234 100644
--- a/tests/app.vala
+++ b/tests/app.vala
@@ -11,7 +11,7 @@
 
 void app_normal () {
     uint test_timeout = GLib.Timeout.add_seconds (10, ()=>{
-        stdout.printf ("Timed out\n"); Process.exit (0); return false; });
+        stdout.printf ("Timed out\n"); Process.exit (0); });
 
     Midori.Test.idle_timeouts ();
     Midori.Test.log_set_fatal_handler_for_icons ();
diff --git a/tests/tab.vala b/tests/tab.vala
index 58a0732..da3c210 100644
--- a/tests/tab.vala
+++ b/tests/tab.vala
@@ -77,7 +77,7 @@ static void tab_display_ellipsize () {
 
 void tab_special () {
     uint test_timeout = GLib.Timeout.add_seconds (10, ()=>{
-        stdout.printf ("Timed out\n"); Process.exit (0); return false; });
+        stdout.printf ("Timed out\n"); Process.exit (0); });
 
     Midori.Test.log_set_fatal_handler_for_icons ();
     var test_address = new Soup.Address ("127.0.0.1", Soup.ADDRESS_ANY_PORT);
@@ -164,6 +164,8 @@ void tab_special () {
 
     browser.activate_action ("TabMoveForward");
     browser.activate_action ("TabMoveBackward");
+    browser.activate_action ("TabMoveFirst");
+    browser.activate_action ("TabMoveLast");
     browser.activate_action ("TabDuplicate");
     browser.activate_action ("TabCloseOther");
 


More information about the Xfce4-commits mailing list