summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorErik Bročko <[email protected]>2020-11-11 16:43:52 +0100
committerGitHub <[email protected]>2020-11-11 16:43:52 +0100
commita67e47448d5534302f0efe588942e761881f28bc (patch)
treed9b3a958b0948301f93f9b0f5dc86ac5e9080ea6 /src
parent40f061c638ae125fc6a4170807fa890362050e0f (diff)
downloadcaja-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.c8
-rw-r--r--src/caja-window-menus.c2
-rw-r--r--src/caja-window.c30
-rw-r--r--src/caja-window.h4
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,