diff --git a/lib/uh/wm/runner.rb b/lib/uh/wm/runner.rb index 6e6aab3..beb6ffc 100644 --- a/lib/uh/wm/runner.rb +++ b/lib/uh/wm/runner.rb @@ -119,6 +119,10 @@ module Uh log "Unmanaging client #{client}" layout.remove client end + @events.on :change do |client| + log "Updating client #{client}" + layout.update client + end end def register_keybinds_hooks diff --git a/spec/uh/wm/runner_spec.rb b/spec/uh/wm/runner_spec.rb index fd6eff4..3c974c0 100644 --- a/spec/uh/wm/runner_spec.rb +++ b/spec/uh/wm/runner_spec.rb @@ -5,6 +5,7 @@ SomeLayout = Class.new do define_method(:suggest_geo) { build_geo 0, 0, 42, 42 } define_method(:<<) { |*_| } define_method(:remove) { |*_| } + define_method(:update) { |*_| } end module Uh @@ -98,6 +99,12 @@ module Uh expect(env.layout).to receive(:remove).with :client runner.events.emit :unmanage, args: :client end + + it 'registers for :change event' do + runner.register_event_hooks + expect(env.layout).to receive(:update).with :client + runner.events.emit :change, args: :client + end end context 'keys hooks' do