From d8dca9867fe9d72030abd8e7fab6ffd723620b39 Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Wed, 1 May 2013 14:43:15 +0200 Subject: [PATCH] Action: Don't trust condition changed events too much --- action.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/action.go b/action.go index ed643c92..202dfeb0 100644 --- a/action.go +++ b/action.go @@ -127,8 +127,14 @@ func (a *Action) SetEnabledCondition(c Condition) { a.enabledCondition = c if c != nil { + a.enabled = c.Satisfied() + a.enabledConditionChangedHandle = c.Changed().Attach(func() { - a.raiseChanged() + if a.enabled != c.Satisfied() { + a.enabled = !a.enabled + + a.raiseChanged() + } }) } } @@ -248,8 +254,14 @@ func (a *Action) SetVisibleCondition(c Condition) { a.visibleCondition = c if c != nil { + a.visible = c.Satisfied() + a.visibleConditionChangedHandle = c.Changed().Attach(func() { - a.raiseVisibleChanged() + if a.visible != c.Satisfied() { + a.visible = !a.visible + + a.raiseVisibleChanged() + } }) } }