[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