From: Tilman Sauerbeck Date: Wed, 12 Jul 2006 19:23:23 +0000 (+0200) Subject: Don't try to add to the container if it won't work anyway. X-Git-Tag: embrace-0.1.0~17 X-Git-Url: http://git.code-monkey.de/?p=embrace.git;a=commitdiff_plain;h=4a43ceec47783f0a66008d207a8479e324355d28;hp=16f509dbf97d51232c282cce8c22090435ff3a66 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. --- 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