From 3f39b9026990eb91fd17a2074bd059de24563d51 Mon Sep 17 00:00:00 2001 From: Thibault Jouan Date: Thu, 16 Apr 2015 09:30:32 +0000 Subject: [PATCH] Listen events for window management in Manager --- lib/uh/wm/manager.rb | 7 ++++++- spec/uh/wm/manager_spec.rb | 8 ++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/uh/wm/manager.rb b/lib/uh/wm/manager.rb index 6f8c232..3b30cca 100644 --- a/lib/uh/wm/manager.rb +++ b/lib/uh/wm/manager.rb @@ -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 diff --git a/spec/uh/wm/manager_spec.rb b/spec/uh/wm/manager_spec.rb index 1ece020..46a5d58 100644 --- a/spec/uh/wm/manager_spec.rb +++ b/spec/uh/wm/manager_spec.rb @@ -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 } }