From 96056c986a6d53872044fdc322c261c057aa5151 Mon Sep 17 00:00:00 2001 From: Turbinya Date: Thu, 30 Sep 2021 19:55:04 +0300 Subject: [PATCH 1/2] feat(shortcuts): navigation with additional mouse keys --- src/Components/Shortcut/shortcut.ts | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/Components/Shortcut/shortcut.ts b/src/Components/Shortcut/shortcut.ts index e9dce3a0..f64cf30e 100644 --- a/src/Components/Shortcut/shortcut.ts +++ b/src/Components/Shortcut/shortcut.ts @@ -55,7 +55,8 @@ const changeSelectedStatus = (): void => { const Shortcut = (): void => { const { reload, minimize, maximize } = require('../Layout/windowManager'); //eslint-disable-line const { createNewTab, goBack, goForward } = require('../Layout/tab'); //eslint-disable-line - const ShortcutHandler = (e: KeyboardEvent) => { + + const KeyboardShortcutsHandler = (e: KeyboardEvent) => { e.preventDefault(); const selectedFilePath = unescape(getSelected()?.[0]?.dataset?.path); const isDir = getSelected()?.[0]?.dataset.isdir === 'true'; @@ -278,9 +279,28 @@ const Shortcut = (): void => { Redo(); } }; - document.addEventListener('keyup', ShortcutHandler); + + const MouseShortcutsHandler = (e: MouseEvent) => { + // Don't react if cursor is over path navigator + if (document.querySelector('.path-navigator') === document.activeElement) return; + + switch (e.button) { + // Back button + case 3: + goBack(); + break; + // Forward button + case 4: + goForward(); + } + } + + document.addEventListener('keyup', KeyboardShortcutsHandler); + document.addEventListener('mouseup', MouseShortcutsHandler); + window.addEventListener('beforeunload', () => { - document.removeEventListener('keyup', ShortcutHandler, false); + document.removeEventListener('keyup', KeyboardShortcutsHandler, false); + document.addEventListener('mouseup', MouseShortcutsHandler); }); }; From f8036b1f76deb59bfa6a6d451190ec9ed935565b Mon Sep 17 00:00:00 2001 From: Turbinya <34983784+Turbinya@users.noreply.github.com> Date: Thu, 30 Sep 2021 20:31:50 +0300 Subject: [PATCH 2/2] fix(eslint): no-mixed-spaces-and-tabs --- src/Components/Shortcut/shortcut.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Components/Shortcut/shortcut.ts b/src/Components/Shortcut/shortcut.ts index f64cf30e..f8a5366e 100644 --- a/src/Components/Shortcut/shortcut.ts +++ b/src/Components/Shortcut/shortcut.ts @@ -292,7 +292,7 @@ const Shortcut = (): void => { // Forward button case 4: goForward(); - } + } } document.addEventListener('keyup', KeyboardShortcutsHandler);