From 15f966654b0d20de0169a18fa036d9eb0bbdaae1 Mon Sep 17 00:00:00 2001 From: Thibault Jouan Date: Thu, 16 Apr 2015 18:28:17 +0000 Subject: [PATCH] Implement client visibility state --- lib/uh/wm/client.rb | 13 +++++++++++-- spec/uh/wm/client_spec.rb | 8 ++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/lib/uh/wm/client.rb b/lib/uh/wm/client.rb index afb1802..ec08d3e 100644 --- a/lib/uh/wm/client.rb +++ b/lib/uh/wm/client.rb @@ -5,14 +5,23 @@ module Uh attr_accessor :geo def initialize window, geo = nil - @window = window - @geo = geo + @window = window + @geo = geo + @visible = false end def to_s "<#{name}> (#{wclass}) #{@geo} win: #{@window}" end + def visible? + @visible + end + + def hidden? + not visible? + end + def name @wname ||= @window.name end diff --git a/spec/uh/wm/client_spec.rb b/spec/uh/wm/client_spec.rb index f8b8d60..06a81bb 100644 --- a/spec/uh/wm/client_spec.rb +++ b/spec/uh/wm/client_spec.rb @@ -8,6 +8,14 @@ module Uh end subject(:client) { described_class.new window, geo } + it 'is not visible' do + expect(client).not_to be_visible + end + + it 'is hidden' do + expect(client).to be_hidden + end + describe '#to_s' do it 'includes window name' do expect(client.to_s).to include 'wname'