Cycle between location and paned widgets with F6
This commit is contained in:
parent
1011d5c5b5
commit
f0647ee95a
1 changed files with 38 additions and 0 deletions
|
@ -2987,6 +2987,10 @@ _action_window_populate_popup (GtkAction* action,
|
||||||
_action_by_name (browser, "TabCurrent"));
|
_action_by_name (browser, "TabCurrent"));
|
||||||
gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), menuitem);
|
gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), menuitem);
|
||||||
gtk_widget_show (menuitem);
|
gtk_widget_show (menuitem);
|
||||||
|
menuitem = gtk_action_create_menu_item (
|
||||||
|
_action_by_name (browser, "NextView"));
|
||||||
|
gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), menuitem);
|
||||||
|
gtk_widget_show (menuitem);
|
||||||
menuitem = gtk_action_create_menu_item (
|
menuitem = gtk_action_create_menu_item (
|
||||||
_action_by_name (browser, "TabNext"));
|
_action_by_name (browser, "TabNext"));
|
||||||
gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), menuitem);
|
gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), menuitem);
|
||||||
|
@ -4540,6 +4544,13 @@ _action_tab_current_activate (GtkAction* action,
|
||||||
gtk_widget_grab_focus (view);
|
gtk_widget_grab_focus (view);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_action_next_view_activate (GtkAction* action,
|
||||||
|
MidoriBrowser* browser)
|
||||||
|
{
|
||||||
|
gtk_widget_grab_focus (midori_browser_get_current_tab (browser));
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_action_tab_minimize_activate (GtkAction* action,
|
_action_tab_minimize_activate (GtkAction* action,
|
||||||
MidoriBrowser* browser)
|
MidoriBrowser* browser)
|
||||||
|
@ -4729,6 +4740,26 @@ midori_panel_notify_position_cb (GObject* hpaned,
|
||||||
(GSourceFunc)midori_browser_panel_timeout, hpaned, NULL);
|
(GSourceFunc)midori_browser_panel_timeout, hpaned, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
midori_panel_cycle_child_focus_cb (GtkWidget* hpaned,
|
||||||
|
gboolean reversed,
|
||||||
|
MidoriBrowser* browser)
|
||||||
|
{
|
||||||
|
/* Default cycle goes between all GtkPaned widgets.
|
||||||
|
If focus is in the panel, focus the location as if it's a paned.
|
||||||
|
If nothing is focussed, simply go to the location.
|
||||||
|
Be sure to suppress the default because the signal can recurse. */
|
||||||
|
GtkWidget* focus = gtk_window_get_focus (GTK_WINDOW (browser));
|
||||||
|
if (gtk_widget_get_ancestor (focus, MIDORI_TYPE_PANEL)
|
||||||
|
|| !gtk_widget_get_ancestor (focus, GTK_TYPE_PANED))
|
||||||
|
{
|
||||||
|
g_signal_stop_emission_by_name (hpaned, "cycle-child-focus");
|
||||||
|
gtk_action_activate (_action_by_name (browser, "Location"));
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
midori_panel_notify_page_cb (MidoriPanel* panel,
|
midori_panel_notify_page_cb (MidoriPanel* panel,
|
||||||
GParamSpec* pspec,
|
GParamSpec* pspec,
|
||||||
|
@ -5172,6 +5203,9 @@ static const GtkActionEntry entries[] =
|
||||||
{ "TabCurrent", NULL,
|
{ "TabCurrent", NULL,
|
||||||
N_("Focus _Current Tab"), "<Ctrl>Home",
|
N_("Focus _Current Tab"), "<Ctrl>Home",
|
||||||
N_("Focus the current tab"), G_CALLBACK (_action_tab_current_activate) },
|
N_("Focus the current tab"), G_CALLBACK (_action_tab_current_activate) },
|
||||||
|
{ "NextView", NULL,
|
||||||
|
N_("Focus _Next view"), "F6",
|
||||||
|
N_("Cycle focus between views"), G_CALLBACK (_action_next_view_activate) },
|
||||||
{ "TabMinimize", NULL,
|
{ "TabMinimize", NULL,
|
||||||
N_("Only show the Icon of the _Current Tab"), "",
|
N_("Only show the Icon of the _Current Tab"), "",
|
||||||
N_("Only show the icon of the current tab"), G_CALLBACK (_action_tab_minimize_activate) },
|
N_("Only show the icon of the current tab"), G_CALLBACK (_action_tab_minimize_activate) },
|
||||||
|
@ -5471,6 +5505,7 @@ static const gchar* ui_markup =
|
||||||
"<menuitem action='TabPrevious'/>"
|
"<menuitem action='TabPrevious'/>"
|
||||||
"<menuitem action='TabNext'/>"
|
"<menuitem action='TabNext'/>"
|
||||||
"<menuitem action='TabCurrent'/>"
|
"<menuitem action='TabCurrent'/>"
|
||||||
|
"<menuitem action='NextView'/>"
|
||||||
"<menuitem action='TabMinimize'/>"
|
"<menuitem action='TabMinimize'/>"
|
||||||
"<menuitem action='TabDuplicate'/>"
|
"<menuitem action='TabDuplicate'/>"
|
||||||
"<menuitem action='TabCloseOther'/>"
|
"<menuitem action='TabCloseOther'/>"
|
||||||
|
@ -6036,6 +6071,9 @@ midori_browser_init (MidoriBrowser* browser)
|
||||||
g_signal_connect (hpaned, "notify::position",
|
g_signal_connect (hpaned, "notify::position",
|
||||||
G_CALLBACK (midori_panel_notify_position_cb),
|
G_CALLBACK (midori_panel_notify_position_cb),
|
||||||
browser);
|
browser);
|
||||||
|
g_signal_connect (hpaned, "cycle-child-focus",
|
||||||
|
G_CALLBACK (midori_panel_cycle_child_focus_cb),
|
||||||
|
browser);
|
||||||
gtk_box_pack_start (GTK_BOX (vbox), hpaned, TRUE, TRUE, 0);
|
gtk_box_pack_start (GTK_BOX (vbox), hpaned, TRUE, TRUE, 0);
|
||||||
gtk_widget_show (hpaned);
|
gtk_widget_show (hpaned);
|
||||||
browser->panel = g_object_new (MIDORI_TYPE_PANEL,
|
browser->panel = g_object_new (MIDORI_TYPE_PANEL,
|
||||||
|
|
Loading…
Reference in a new issue