From b0f775429fb7a6d4f2bc61f5b8f22682e1f7535a Mon Sep 17 00:00:00 2001 From: Iason Paraskevopoulos Date: Sun, 20 Sep 2026 10:33:15 +0100 Subject: [PATCH 1/3] fix: camera placement on external displays Pinning the camera window was putting it below the menubar when was applied on an external display that was being shared, probably the overlay window is messing the placement, on the native display this isn't happening. This is now fixed by using the pin margin on the y axis too. --- core/src/window/camera_window.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/window/camera_window.rs b/core/src/window/camera_window.rs index 859936bd..e4ca1435 100644 --- a/core/src/window/camera_window.rs +++ b/core/src/window/camera_window.rs @@ -848,7 +848,7 @@ impl CameraWindow { let mon_pos: winit::dpi::LogicalPosition = monitor.position().to_logical(scale); let x = mon_pos.x + mon_size.width - PIN_CORNER_WIDTH - PIN_CORNER_MARGIN; - let y = mon_pos.y; + let y = mon_pos.y + PIN_CORNER_MARGIN; let _ = self.window.request_inner_size(winit::dpi::LogicalSize::new( PIN_CORNER_WIDTH, From ebf67086340cb521c16ed18b33a59b55ae442701 Mon Sep 17 00:00:00 2001 From: Iason Paraskevopoulos Date: Sun, 20 Sep 2026 11:30:30 +0100 Subject: [PATCH 2/3] fix: forward function keys on macos Function keys are layout-independent, but were missing from the macOS key map. This caused their lookup to fall back to keycode 0 and insert a character for Option+F1. This is now fixed by adding the fixed virtual keycodes. --- core/src/input/keyboard_macos.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/core/src/input/keyboard_macos.rs b/core/src/input/keyboard_macos.rs index 2e7dec0e..796d20bb 100644 --- a/core/src/input/keyboard_macos.rs +++ b/core/src/input/keyboard_macos.rs @@ -190,6 +190,26 @@ impl KeyboardLayoutTrait for KeyboardLayout { independent_codes.insert("Meta", 0x37); independent_codes.insert("Alt", 0x3A); independent_codes.insert("CapsLock", 0x39); + independent_codes.insert("F1", 0x7A); + independent_codes.insert("F2", 0x78); + independent_codes.insert("F3", 0x63); + independent_codes.insert("F4", 0x76); + independent_codes.insert("F5", 0x60); + independent_codes.insert("F6", 0x61); + independent_codes.insert("F7", 0x62); + independent_codes.insert("F8", 0x64); + independent_codes.insert("F9", 0x65); + independent_codes.insert("F10", 0x6D); + independent_codes.insert("F11", 0x67); + independent_codes.insert("F12", 0x6F); + independent_codes.insert("F13", 0x69); + independent_codes.insert("F14", 0x6B); + independent_codes.insert("F15", 0x71); + independent_codes.insert("F16", 0x6A); + independent_codes.insert("F17", 0x40); + independent_codes.insert("F18", 0x4F); + independent_codes.insert("F19", 0x50); + independent_codes.insert("F20", 0x5A); independent_codes } } From bf6c98c8662be9d24790fe70948f1848088199f1 Mon Sep 17 00:00:00 2001 From: Iason Paraskevopoulos Date: Sun, 20 Sep 2026 11:44:39 +0100 Subject: [PATCH 3/3] fix: review comments --- core/src/input/keyboard.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/core/src/input/keyboard.rs b/core/src/input/keyboard.rs index 9b313f49..cb2861d4 100644 --- a/core/src/input/keyboard.rs +++ b/core/src/input/keyboard.rs @@ -491,6 +491,28 @@ impl KeyboardController { && (keystroke_data.key != "End") && (keystroke_data.key != "Control") && (keystroke_data.key != "Shift") + && !matches!( + keystroke_data.key.as_str(), + "F1" | "F2" + | "F3" + | "F4" + | "F5" + | "F6" + | "F7" + | "F8" + | "F9" + | "F10" + | "F11" + | "F12" + | "F13" + | "F14" + | "F15" + | "F16" + | "F17" + | "F18" + | "F19" + | "F20" + ) && (!keystroke_data.key.is_empty()) && !keystroke_data.meta && !keystroke_data.alt