diff options
author | Erik Bročko <[email protected]> | 2020-11-11 16:43:52 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2020-11-11 16:43:52 +0100 |
commit | a67e47448d5534302f0efe588942e761881f28bc (patch) | |
tree | d9b3a958b0948301f93f9b0f5dc86ac5e9080ea6 /src | |
parent | 40f061c638ae125fc6a4170807fa890362050e0f (diff) | |
download | caja-a67e47448d5534302f0efe588942e761881f28bc.tar.bz2 caja-a67e47448d5534302f0efe588942e761881f28bc.tar.xz |
Duplicate tabs using the scroll wheel (#1456)
* middle-clicking the reload button duplicates tab
Diffstat (limited to 'src')
-rw-r--r-- | src/caja-window-manage-views.c | 8 | ||||
-rw-r--r-- | src/caja-window-menus.c | 2 | ||||
-rw-r--r-- | src/caja-window.c | 30 | ||||
-rw-r--r-- | src/caja-window.h | 4 |
4 files changed, 32 insertions, 12 deletions
diff --git a/src/caja-window-manage-views.c b/src/caja-window-manage-views.c index 200fa791..aa18030b 100644 --- a/src/caja-window-manage-views.c +++ b/src/caja-window-manage-views.c @@ -2394,11 +2394,3 @@ caja_window_slot_reload (CajaWindowSlot *slot) g_list_free_full (selection, g_object_unref); } -void -caja_window_reload (CajaWindow *window) -{ - g_assert (CAJA_IS_WINDOW (window)); - - caja_window_slot_reload (window->details->active_pane->active_slot); -} - diff --git a/src/caja-window-menus.c b/src/caja-window-menus.c index 21db8ee0..6796b9ab 100644 --- a/src/caja-window-menus.c +++ b/src/caja-window-menus.c @@ -366,7 +366,7 @@ static void action_reload_callback (GtkAction *action, gpointer user_data) { - caja_window_reload (CAJA_WINDOW (user_data)); + caja_window_reload (CAJA_WINDOW (user_data), should_open_in_new_tab ()); } static void diff --git a/src/caja-window.c b/src/caja-window.c index 42d43e82..640932c2 100644 --- a/src/caja-window.c +++ b/src/caja-window.c @@ -272,6 +272,12 @@ caja_window_go_up_signal (CajaWindow *window, gboolean close_behind) return TRUE; } +static void +caja_window_reload_signal (CajaWindow *window) +{ + caja_window_reload (window, FALSE); +} + void caja_window_new_tab (CajaWindow *window) { @@ -477,6 +483,28 @@ caja_window_sync_allow_stop (CajaWindow *window, } void +caja_window_reload (CajaWindow *window, gboolean new_tab) +{ + CajaWindowSlot *slot; + + g_assert (CAJA_IS_WINDOW (window)); + + slot = window->details->active_pane->active_slot; + + if (new_tab && slot->location != NULL) + { + caja_window_slot_open_location_full (slot, slot->location, + CAJA_WINDOW_OPEN_ACCORDING_TO_MODE, + CAJA_WINDOW_OPEN_FLAG_NEW_TAB, + NULL, NULL, NULL); + } + else + { + caja_window_slot_reload (slot); + } +} + +void caja_window_allow_reload (CajaWindow *window, gboolean allow) { GtkAction *action; @@ -2220,6 +2248,6 @@ caja_window_class_init (CajaWindowClass *class) "prompt-for-location", 1, G_TYPE_STRING, "/"); - class->reload = caja_window_reload; + class->reload = caja_window_reload_signal; class->go_up = caja_window_go_up_signal; } diff --git a/src/caja-window.h b/src/caja-window.h index 1dc29633..de6f3e9b 100644 --- a/src/caja-window.h +++ b/src/caja-window.h @@ -156,8 +156,8 @@ void caja_window_prompt_for_location (CajaWindow *window, const char *initial); void caja_window_display_error (CajaWindow *window, const char *error_msg); -void caja_window_reload (CajaWindow *window); - +void caja_window_reload (CajaWindow *window, + gboolean new_tab); void caja_window_allow_reload (CajaWindow *window, gboolean allow); void caja_window_allow_up (CajaWindow *window, |