From f01a86c644997d4bd506b4569bb5ab13e960dcb2 Mon Sep 17 00:00:00 2001 From: Peter Tripp Date: Mon, 18 Nov 2024 14:36:08 +0000 Subject: [PATCH] Support for Back/Forward multimedia keys (#20695) - Added Support for Back/Forward multimedia keys (Linux) --- assets/keymaps/default-linux.json | 2 ++ crates/gpui/src/platform/keystroke.rs | 2 ++ crates/gpui/src/platform/linux/platform.rs | 2 ++ crates/gpui/src/platform/windows/events.rs | 4 ++++ 4 files changed, 10 insertions(+) diff --git a/assets/keymaps/default-linux.json b/assets/keymaps/default-linux.json index 664e13ee77787588d03077369fb642b353948e92..313ee024b56ba58ebf912a0193323095443517b2 100644 --- a/assets/keymaps/default-linux.json +++ b/assets/keymaps/default-linux.json @@ -251,6 +251,8 @@ "ctrl-pagedown": "pane::ActivateNextItem", "ctrl-shift-pageup": "pane::SwapItemLeft", "ctrl-shift-pagedown": "pane::SwapItemRight", + "back": "pane::GoBack", + "forward": "pane::GoForward", "ctrl-w": "pane::CloseActiveItem", "ctrl-f4": "pane::CloseActiveItem", "alt-ctrl-t": ["pane::CloseInactiveItems", { "close_pinned": false }], diff --git a/crates/gpui/src/platform/keystroke.rs b/crates/gpui/src/platform/keystroke.rs index f61beab9e9f32c34287f77beef1999dffcdaf650..20a12a691b080c89584d3cb857a977247f1890fa 100644 --- a/crates/gpui/src/platform/keystroke.rs +++ b/crates/gpui/src/platform/keystroke.rs @@ -222,6 +222,8 @@ fn is_printable_key(key: &str) -> bool { | "insert" | "home" | "end" + | "back" + | "forward" | "escape" ) } diff --git a/crates/gpui/src/platform/linux/platform.rs b/crates/gpui/src/platform/linux/platform.rs index a2e9af691b55476c718ab1493ba33b6193467115..f778ebc074e337c5c36439832928e5b1c2bf54f1 100644 --- a/crates/gpui/src/platform/linux/platform.rs +++ b/crates/gpui/src/platform/linux/platform.rs @@ -684,6 +684,8 @@ impl Keystroke { Keysym::ISO_Left_Tab => "tab".to_owned(), Keysym::KP_Prior => "pageup".to_owned(), Keysym::KP_Next => "pagedown".to_owned(), + Keysym::XF86_Back => "back".to_owned(), + Keysym::XF86_Forward => "forward".to_owned(), Keysym::comma => ",".to_owned(), Keysym::period => ".".to_owned(), diff --git a/crates/gpui/src/platform/windows/events.rs b/crates/gpui/src/platform/windows/events.rs index 1f501f3341e3e055baac77310e4bd7172771d057..92adf6c7cb24abc8aaf1c55add78269ac39d8198 100644 --- a/crates/gpui/src/platform/windows/events.rs +++ b/crates/gpui/src/platform/windows/events.rs @@ -1160,6 +1160,8 @@ fn parse_syskeydown_msg_keystroke(wparam: WPARAM) -> Option { VK_END => "end", VK_PRIOR => "pageup", VK_NEXT => "pagedown", + VK_BROWSER_BACK => "back", + VK_BROWSER_FORWARD => "forward", VK_ESCAPE => "escape", VK_INSERT => "insert", VK_DELETE => "delete", @@ -1196,6 +1198,8 @@ fn parse_keydown_msg_keystroke(wparam: WPARAM) -> Option { VK_END => "end", VK_PRIOR => "pageup", VK_NEXT => "pagedown", + VK_BROWSER_BACK => "back", + VK_BROWSER_FORWARD => "forward", VK_ESCAPE => "escape", VK_INSERT => "insert", VK_DELETE => "delete",