Listen events for window management in Manager

This commit is contained in:
Thibault Jouan 2015-04-16 09:30:32 +00:00
parent d501bb9b35
commit 3f39b90269
2 changed files with 14 additions and 1 deletions

View File

@ -1,7 +1,11 @@
module Uh
module WM
class Manager
INPUT_MASK = Events::SUBSTRUCTURE_REDIRECT_MASK
INPUT_MASK = Events::SUBSTRUCTURE_REDIRECT_MASK
ROOT_MASK = Events::PROPERTY_CHANGE_MASK |
Events::SUBSTRUCTURE_REDIRECT_MASK |
Events::SUBSTRUCTURE_NOTIFY_MASK |
Events::STRUCTURE_NOTIFY_MASK
attr_reader :modifier, :display
@ -20,6 +24,7 @@ module Uh
Display.on_error { |*args| handle_error *args }
@display.sync false
@events.emit :connected, args: @display
@display.root.mask = ROOT_MASK
end
def disconnect

View File

@ -33,6 +33,14 @@ module Uh
manager.connect
end
it 'updates the root window mask in order to manage windows' do
manager.connect
expect(display.root.mask).to eq Events::PROPERTY_CHANGE_MASK |
Events::SUBSTRUCTURE_REDIRECT_MASK |
Events::SUBSTRUCTURE_NOTIFY_MASK |
Events::STRUCTURE_NOTIFY_MASK
end
context 'when connection fails' do
before { allow(display).to receive(:open) { fail } }