Refactor Manager#handle

This commit is contained in:
Thibault Jouan 2015-04-16 12:10:49 +00:00
parent d46a332218
commit 0a8a6bc5fb

View File

@ -42,16 +42,8 @@ module Uh
end
def handle event
case event.type
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
when :map_request
@clients << client = Client.new(event.window)
@events.emit :manage, args: client
end
return unless respond_to? handler = "handle_#{event.type}".to_sym, true
send handler, event
end
@ -61,6 +53,18 @@ module Uh
@dispatcher.emit :error, args: args
end
def handle_key_press event
key_selector = event.modifier_mask & KEY_MODIFIERS[:shift] == 1 ?
[event.key.to_sym, :shift] :
event.key.to_sym
@events.emit :key, *key_selector
end
def handle_map_request event
@clients << client = Client.new(event.window)
@events.emit :manage, args: client
end
def check_other_wm!
Display.on_error { fail OtherWMRunningError }
@display.listen_events INPUT_MASK