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
This commit is contained in:
Andrzej Kapolka
2004-11-04 02:03:47 +00:00
parent 998e38c7c2
commit a7a04da6df
@@ -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 // Narya library - tools for developing networked games
// Copyright (C) 2002-2004 Three Rings Design, Inc., All Rights Reserved // 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() { MouseAdapter ma = new MouseAdapter() {
public void mousePressed (MouseEvent me) { 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(); _handleX = _activeSprite.getX() - me.getX();
_handleY = _activeSprite.getY() - me.getY(); _handleY = _activeSprite.getY() - me.getY();
@@ -173,11 +175,13 @@ public abstract class CardPanel extends VirtualMediaPanel
} }
} }
public void mouseReleased (MouseEvent me) { 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( _activeSprite.queueNotification(
new CardSpriteDraggedOp((CardSprite)_activeSprite, me) new CardSpriteDraggedOp((CardSprite)_activeSprite, me)
); );
} else if(_activeSprite instanceof ButtonSprite) { } else if (_activeSprite instanceof ButtonSprite) {
ButtonSprite bs = (ButtonSprite)_activeSprite; ButtonSprite bs = (ButtonSprite)_activeSprite;
if (bs.isPressed()) { if (bs.isPressed()) {
CommandEvent ce = new CommandEvent(CardPanel.this, bs.getActionCommand(), CommandEvent ce = new CommandEvent(CardPanel.this, bs.getActionCommand(),
@@ -190,7 +194,9 @@ public abstract class CardPanel extends VirtualMediaPanel
} }
} }
public void mouseClicked (MouseEvent me) { public void mouseClicked (MouseEvent me) {
if (_activeSprite instanceof CardSprite) { if (_activeSprite != null && !isManaged(_activeSprite)) {
_activeSprite = null;
} else if (_activeSprite instanceof CardSprite) {
_activeSprite.queueNotification( _activeSprite.queueNotification(
new CardSpriteClickedOp((CardSprite)_activeSprite, me) new CardSpriteClickedOp((CardSprite)_activeSprite, me)
); );
@@ -227,11 +233,13 @@ public abstract class CardPanel extends VirtualMediaPanel
} }
if (newActiveSprite != _activeSprite) { if (newActiveSprite != _activeSprite) {
if (_activeSprite instanceof CardSprite) { if (_activeSprite instanceof CardSprite &&
isManaged(_activeSprite)) {
_activeSprite.queueNotification( _activeSprite.queueNotification(
new CardSpriteExitedOp((CardSprite)_activeSprite, me) new CardSpriteExitedOp((CardSprite)_activeSprite, me)
); );
} else if (_activeSprite instanceof ButtonSprite) { } else if (_activeSprite instanceof ButtonSprite &&
isManaged(_activeSprite)) {
((ButtonSprite)_activeSprite).setPressed(false); ((ButtonSprite)_activeSprite).setPressed(false);
} }
if (newActiveSprite instanceof CardSprite) { if (newActiveSprite instanceof CardSprite) {