From a7a04da6dfe1ac2de2a3b29d6d8e76d39a666d6f Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Thu, 4 Nov 2004 02:03:47 +0000 Subject: [PATCH] Check to make sure card sprites are still managed before posting events. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3200 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../parlor/card/client/CardPanel.java | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/java/com/threerings/parlor/card/client/CardPanel.java b/src/java/com/threerings/parlor/card/client/CardPanel.java index 10bff0784..6ba1c80bc 100644 --- a/src/java/com/threerings/parlor/card/client/CardPanel.java +++ b/src/java/com/threerings/parlor/card/client/CardPanel.java @@ -1,5 +1,5 @@ // -// $Id: CardPanel.java,v 1.7 2004/11/02 02:40:27 andrzej Exp $ +// $Id: CardPanel.java,v 1.8 2004/11/04 02:03:47 andrzej Exp $ // // Narya library - tools for developing networked games // Copyright (C) 2002-2004 Three Rings Design, Inc., All Rights Reserved @@ -160,7 +160,9 @@ public abstract class CardPanel extends VirtualMediaPanel MouseAdapter ma = new MouseAdapter() { public void mousePressed (MouseEvent me) { - if(_activeSprite instanceof CardSprite) { + if (_activeSprite != null && !isManaged(_activeSprite)) { + _activeSprite = null; + } else if (_activeSprite instanceof CardSprite) { _handleX = _activeSprite.getX() - me.getX(); _handleY = _activeSprite.getY() - me.getY(); @@ -173,11 +175,13 @@ public abstract class CardPanel extends VirtualMediaPanel } } public void mouseReleased (MouseEvent me) { - if (_activeSprite instanceof CardSprite && _hasBeenDragged) { + if (_activeSprite != null && !isManaged(_activeSprite)) { + _activeSprite = null; + } else if (_activeSprite instanceof CardSprite && _hasBeenDragged) { _activeSprite.queueNotification( new CardSpriteDraggedOp((CardSprite)_activeSprite, me) ); - } else if(_activeSprite instanceof ButtonSprite) { + } else if (_activeSprite instanceof ButtonSprite) { ButtonSprite bs = (ButtonSprite)_activeSprite; if (bs.isPressed()) { CommandEvent ce = new CommandEvent(CardPanel.this, bs.getActionCommand(), @@ -190,7 +194,9 @@ public abstract class CardPanel extends VirtualMediaPanel } } public void mouseClicked (MouseEvent me) { - if (_activeSprite instanceof CardSprite) { + if (_activeSprite != null && !isManaged(_activeSprite)) { + _activeSprite = null; + } else if (_activeSprite instanceof CardSprite) { _activeSprite.queueNotification( new CardSpriteClickedOp((CardSprite)_activeSprite, me) ); @@ -227,11 +233,13 @@ public abstract class CardPanel extends VirtualMediaPanel } if (newActiveSprite != _activeSprite) { - if (_activeSprite instanceof CardSprite) { + if (_activeSprite instanceof CardSprite && + isManaged(_activeSprite)) { _activeSprite.queueNotification( new CardSpriteExitedOp((CardSprite)_activeSprite, me) ); - } else if (_activeSprite instanceof ButtonSprite) { + } else if (_activeSprite instanceof ButtonSprite && + isManaged(_activeSprite)) { ((ButtonSprite)_activeSprite).setPressed(false); } if (newActiveSprite instanceof CardSprite) {