Merge branch 'window-expose-handling'
Handle X expose events, generate an :expose internal event, and support #expose layout protocol message.
This commit is contained in:
commit
4e4b15871e
@ -6,6 +6,9 @@ Feature: layout protocol
|
||||
class Layout
|
||||
def register display
|
||||
puts display
|
||||
display.create_subwindow(Uh::Geo.new(0, 0, 640, 16)).tap do |o|
|
||||
o.show
|
||||
end
|
||||
end
|
||||
|
||||
def << client
|
||||
@ -20,6 +23,10 @@ Feature: layout protocol
|
||||
def update client
|
||||
puts "testing_#update_#{client.name}"
|
||||
end
|
||||
|
||||
def expose window
|
||||
puts "testing_#expose_#{window.id}"
|
||||
end
|
||||
end
|
||||
"""
|
||||
|
||||
@ -43,3 +50,7 @@ Feature: layout protocol
|
||||
And a window is mapped
|
||||
When the window name changes to "testing_new_name"
|
||||
Then the output must contain "testing_#update_testing_new_name"
|
||||
|
||||
Scenario: tells the layout about an exposed window with #expose message
|
||||
Given I run uhwm with options -r./layout -l Layout
|
||||
Then the output must match /testing_#expose_\d+/
|
||||
|
5
features/manager/expose.feature
Normal file
5
features/manager/expose.feature
Normal file
@ -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
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -16,7 +16,7 @@ Gem::Specification.new do |s|
|
||||
s.executables = s.files.grep(/\Abin\//) { |f| File.basename(f) }
|
||||
|
||||
s.add_dependency 'uh', '2.0.0.pre2'
|
||||
s.add_dependency 'uh-layout', '~> 0.2.2'
|
||||
s.add_dependency 'uh-layout', '~> 0.2.3'
|
||||
|
||||
s.add_development_dependency 'aruba', '~> 0.6'
|
||||
s.add_development_dependency 'cucumber', '~> 2.0'
|
||||
|
Loading…
x
Reference in New Issue
Block a user