Configure upcased key as combination with shift mod
This commit is contained in:
@@ -21,8 +21,10 @@ module Uh
|
||||
@events.emit :connected, args: @display
|
||||
end
|
||||
|
||||
def grab_key keysym
|
||||
@display.grab_key keysym.to_s, KEY_MODIFIERS[:mod1]
|
||||
def grab_key keysym, mod = nil
|
||||
mod_mask = KEY_MODIFIERS[:mod1]
|
||||
mod_mask |= KEY_MODIFIERS[mod] if mod
|
||||
@display.grab_key keysym.to_s, mod_mask
|
||||
end
|
||||
|
||||
def handle_pending_events
|
||||
@@ -31,7 +33,11 @@ module Uh
|
||||
|
||||
def handle event
|
||||
case event.type
|
||||
when :key_press then @events.emit :key, event.key.to_sym
|
||||
when :key_press
|
||||
key_selector = event.modifier_mask & KEY_MODIFIERS[:shift] == 1 ?
|
||||
[event.key.to_sym, :shift] :
|
||||
event.key.to_sym
|
||||
@events.emit :key, *key_selector
|
||||
end
|
||||
end
|
||||
|
||||
|
@@ -32,7 +32,11 @@ module Uh
|
||||
private
|
||||
|
||||
def translate_keysym keysym
|
||||
KEYSYM_TRANSLATIONS.key?(keysym) ? KEYSYM_TRANSLATIONS[keysym] : keysym
|
||||
translate_key = keysym.to_s.downcase.to_sym
|
||||
translated_keysym = KEYSYM_TRANSLATIONS.key?(translate_key) ?
|
||||
KEYSYM_TRANSLATIONS[translate_key] :
|
||||
translate_key
|
||||
keysym =~ /[A-Z]/ ? [translated_keysym, :shift] : translated_keysym
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@@ -74,7 +74,7 @@ module Uh
|
||||
def register_key_bindings_hooks
|
||||
@events.on(:key, :q) { stop! }
|
||||
@env.keybinds.each do |keysym, code|
|
||||
@events.on :key, keysym, &code
|
||||
@events.on :key, *keysym, &code
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user