diff options
Diffstat (limited to 'server/src/com/vaadin/event/ActionManager.java')
-rw-r--r-- | server/src/com/vaadin/event/ActionManager.java | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/server/src/com/vaadin/event/ActionManager.java b/server/src/com/vaadin/event/ActionManager.java index b42a5d8dde..6eb698d08a 100644 --- a/server/src/com/vaadin/event/ActionManager.java +++ b/server/src/com/vaadin/event/ActionManager.java @@ -78,7 +78,10 @@ public class ActionManager implements Action.Container, Action.Handler, public <T extends Component & Container & VariableOwner> void setViewer( T viewer) { - if (viewer == this.viewer) { + // This somewhat complicated check exists to make sure that proxies are + // handled correctly + if (this.viewer == viewer + || (this.viewer != null && this.viewer.equals(viewer))) { return; } if (this.viewer != null) { @@ -113,7 +116,7 @@ public class ActionManager implements Action.Container, Action.Handler, @Override public void addActionHandler(Handler actionHandler) { - if (actionHandler == this) { + if (equals(actionHandler)) { // don't add the actionHandler to itself return; } |