diff --git a/lib/uh/wm/runner.rb b/lib/uh/wm/runner.rb index bbeba0c..f54a6cd 100644 --- a/lib/uh/wm/runner.rb +++ b/lib/uh/wm/runner.rb @@ -31,6 +31,7 @@ module Uh def register_event_hooks register_manager_hooks + register_layout_event_hooks register_key_bindings_hooks end @@ -55,6 +56,12 @@ module Uh end end + def register_layout_event_hooks + @events.on(:connected) do |display| + @layout.register display + end + end + def register_key_bindings_hooks @events.on(:key, :q) { stop! } end diff --git a/spec/uh/wm/runner_spec.rb b/spec/uh/wm/runner_spec.rb index 15cbbfa..0d533fd 100644 --- a/spec/uh/wm/runner_spec.rb +++ b/spec/uh/wm/runner_spec.rb @@ -1,4 +1,6 @@ -SomeLayout = Class.new +SomeLayout = Class.new do + define_method(:register) { |*args| } +end module Uh module WM @@ -97,6 +99,12 @@ module Uh runner.events.emit :connected end + it 'registers layout hook for :connected event' do + runner.register_event_hooks + expect(runner.layout).to receive(:register).with :display + runner.events.emit :connected, args: :display + end + it 'registers key bindings event hooks' do runner.register_event_hooks expect(runner.events[:key, :q]).not_to be_empty