fix: allow no modifier for function keys

This commit is contained in:
Ashley Wulber 2025-10-07 10:27:11 -04:00 committed by Ashley Wulber
parent b6fc00972d
commit c2fa21debc
4 changed files with 12 additions and 4 deletions

View file

@ -22,13 +22,14 @@ cosmic-panel-config = { workspace = true, optional = true }
cosmic-protocols = { git = "https://github.com/pop-os/cosmic-protocols", optional = true }
cosmic-randr-shell.workspace = true
cosmic-randr = { workspace = true, optional = true }
cosmic-settings-config = { git = "https://github.com/pop-os/cosmic-settings-daemon", optional = true }
cosmic-settings-config = { git = "https://github.com/pop-os/cosmic-settings-daemon", optional = true, branch = "lowercase" }
# cosmic-settings-config = { path = "../../cosmic-settings-daemon/config", optional = true }
cosmic-settings-page = { path = "../page" }
cosmic-settings-subscriptions = { workspace = true, optional = true }
cosmic-settings-system = { path = "../pages/system", optional = true }
cosmic-settings-wallpaper = { path = "../pages/wallpapers" }
cosmic-settings-daemon-config = { git = "https://github.com/pop-os/cosmic-settings-daemon", optional = true }
cosmic-settings-daemon-config = { git = "https://github.com/pop-os/cosmic-settings-daemon", optional = true, branch = "lowercase" }
# cosmic-settings-daemon-config = { path = "../../cosmic-settings-daemon/cosmic-settings-daemon-config", optional = true }
derive_setters = "0.1.8"
dirs = "6.0.0"
eyre = "0.6.12"

View file

@ -564,6 +564,10 @@ impl Model {
{
if shortcut.pending.modifiers
!= cosmic_settings_config::shortcuts::Modifiers::new()
|| shortcut.pending.key.is_some_and(|key| {
key.is_misc_function_key()
|| matches!(key.raw(), 0x10080001..=0x1008FFFF)
})
{
shortcut.input = shortcut.pending.to_string();
// XX for now avoid applying the keycode

View file

@ -311,6 +311,9 @@ impl Page {
.is_some_and(|k| k == keycode)
&& self.add_shortcut.binding.modifiers
!= cosmic_settings_config::shortcuts::Modifiers::new()
|| self.add_shortcut.binding.key.is_some_and(|key| {
key.is_misc_function_key() || matches!(key.raw(), 0x10080001..=0x1008FFFF)
})
{
// XX for now avoid applying the keycode
let binding = Binding {