From f90e2841b6c501abd7865c0188f6f13c782ce1bf Mon Sep 17 00:00:00 2001 From: Jari Pennanen Date: Tue, 9 Feb 2021 16:39:58 +0200 Subject: [PATCH 1/3] Ctrl+Backspace was not working in Windows 10 --- druid-shell/src/platform/windows/keyboard.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/druid-shell/src/platform/windows/keyboard.rs b/druid-shell/src/platform/windows/keyboard.rs index f4b45d4393..73b7c4ba21 100644 --- a/druid-shell/src/platform/windows/keyboard.rs +++ b/druid-shell/src/platform/windows/keyboard.rs @@ -610,6 +610,8 @@ impl KeyboardState { let code = scan_to_code(scan_code); let key = if self.stash_utf16.is_empty() && wparam < 0x20 { vk_to_key(vk).unwrap_or_else(|| self.get_base_key(vk, mods)) + } else if wparam == 0x7f { + KbKey::Backspace } else { self.stash_utf16.push(wparam as u16); if let Ok(s) = String::from_utf16(&self.stash_utf16) { From ced262a2363cf9665e05e01c5e327125f51bd447 Mon Sep 17 00:00:00 2001 From: Jari Pennanen Date: Tue, 9 Feb 2021 16:50:31 +0200 Subject: [PATCH 2/3] Fixing Ctrl+Backspace in Win 10 --- druid-shell/src/platform/windows/keyboard.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/druid-shell/src/platform/windows/keyboard.rs b/druid-shell/src/platform/windows/keyboard.rs index 73b7c4ba21..66d731628a 100644 --- a/druid-shell/src/platform/windows/keyboard.rs +++ b/druid-shell/src/platform/windows/keyboard.rs @@ -608,10 +608,8 @@ impl KeyboardState { let scan_code = ((lparam & SCAN_MASK) >> 16) as u32; let vk = self.refine_vk(stash_vk.unwrap_or(0), scan_code); let code = scan_to_code(scan_code); - let key = if self.stash_utf16.is_empty() && wparam < 0x20 { + let key = if self.stash_utf16.is_empty() && wparam < 0x20 || wparam == 0x7f { vk_to_key(vk).unwrap_or_else(|| self.get_base_key(vk, mods)) - } else if wparam == 0x7f { - KbKey::Backspace } else { self.stash_utf16.push(wparam as u16); if let Ok(s) = String::from_utf16(&self.stash_utf16) { From be94a1070c1b5ef26424e54e44905c2431e17ff6 Mon Sep 17 00:00:00 2001 From: Jari Pennanen Date: Tue, 9 Feb 2021 16:51:21 +0200 Subject: [PATCH 3/3] Fixing Win10 ctrl+backspace --- druid-shell/src/platform/windows/keyboard.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/druid-shell/src/platform/windows/keyboard.rs b/druid-shell/src/platform/windows/keyboard.rs index 66d731628a..3957459829 100644 --- a/druid-shell/src/platform/windows/keyboard.rs +++ b/druid-shell/src/platform/windows/keyboard.rs @@ -608,7 +608,7 @@ impl KeyboardState { let scan_code = ((lparam & SCAN_MASK) >> 16) as u32; let vk = self.refine_vk(stash_vk.unwrap_or(0), scan_code); let code = scan_to_code(scan_code); - let key = if self.stash_utf16.is_empty() && wparam < 0x20 || wparam == 0x7f { + let key = if self.stash_utf16.is_empty() && (wparam < 0x20 || wparam == 0x7f) { vk_to_key(vk).unwrap_or_else(|| self.get_base_key(vk, mods)) } else { self.stash_utf16.push(wparam as u16);