diff --git a/features/manager/expose.feature b/features/manager/expose.feature new file mode 100644 index 0000000..09ec916 --- /dev/null +++ b/features/manager/expose.feature @@ -0,0 +1,5 @@ +Feature: expose events handling + + Scenario: logs when an expose event is handled + Given uhwm is running + Then the output must match /expos.+window.+\d+/i diff --git a/lib/uh/wm/manager.rb b/lib/uh/wm/manager.rb index a3fc312..6b58034 100644 --- a/lib/uh/wm/manager.rb +++ b/lib/uh/wm/manager.rb @@ -120,6 +120,10 @@ module Uh destroy event.window end + def handle_expose event + @events.emit :expose, args: event.window + end + def handle_map_request event map event.window end diff --git a/lib/uh/wm/runner.rb b/lib/uh/wm/runner.rb index beb6ffc..ba93001 100644 --- a/lib/uh/wm/runner.rb +++ b/lib/uh/wm/runner.rb @@ -123,6 +123,10 @@ module Uh log "Updating client #{client}" layout.update client end + @events.on :expose do |window| + log "Exposing window: #{window}" + layout.expose window + end end def register_keybinds_hooks