From 4a43ceec47783f0a66008d207a8479e324355d28 Mon Sep 17 00:00:00 2001 From: Tilman Sauerbeck Date: Wed, 12 Jul 2006 21:23:23 +0200 Subject: [PATCH] Don't try to add to the container if it won't work anyway. This means we no longer will create new MailboxIcon objects and losing them immediately without calling the proper EvasObject#delete method. --- bin/embrace | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/bin/embrace b/bin/embrace index 9772596..bfd91c9 100755 --- a/bin/embrace +++ b/bin/embrace @@ -188,6 +188,14 @@ module Embrace @add_lock_count = 0 end + def can_add? + !slots_left.zero? && @add_lock_count.zero? + end + + def can_delete? + @about_to_add.zero? && @add_lock_count.zero? + end + def <<(i) Kernel.raise(ContainerFullError) if slots_left.zero? Kernel.raise(ContainerLockedError) unless @add_lock_count.zero? @@ -330,10 +338,6 @@ module Embrace end private - def add_icon(name) - @container << MailboxIcon.new(evas, name) - end - def on_timer return unless @server.nil? @@ -352,22 +356,10 @@ module Embrace found = evas.find_object(lbl) - begin - if ev.count.zero? - unless found.nil? - #puts "removing icon #{lbl}" - @container.delete(found) - else - #puts "count == 0, but icon not found (#{lbl})" - end - elsif found.nil? - #puts "adding icon #{lbl}" - add_icon(lbl) - else - #puts "count > 0, but already there (#{lbl})" - end - rescue Exception => e - puts e.message + if ev.count.zero? && !found.nil? && @container.can_delete? + @container.delete(found) + elsif !ev.count.zero? && found.nil? && @container.can_add? + @container << MailboxIcon.new(evas, lbl) end false -- 2.30.2