Revision: 9250
http://sourceforge.net/p/vassalengine/svn/9250
Author: uckelman
Date: 2017-01-21 23:50:55 +0000 (Sat, 21 Jan 2017)
Log Message:
-----------
Merged Brent-3.2-Work@9249.
Bug 12538: Decks report multiple shuffles after loading saved game
Modified Paths:
--------------
VASSAL-src/trunk/src/VASSAL/build/GameModule.java
VASSAL-src/trunk/src/VASSAL/build/module/map/DrawPile.java
VASSAL-src/trunk/src/VASSAL/counters/Deck.java
VASSAL-src/trunk/src/VASSAL/tools/KeyStrokeListener.java
Modified: VASSAL-src/trunk/src/VASSAL/build/GameModule.java
===================================================================
--- VASSAL-src/trunk/src/VASSAL/build/GameModule.java 2017-01-20 08:38:39 UTC (rev 9249)
+++ VASSAL-src/trunk/src/VASSAL/build/GameModule.java 2017-01-21 23:50:55 UTC (rev 9250)
@@ -395,6 +395,15 @@
}
}
+ public void removeKeyStrokeListener (KeyStrokeListener l) {
+ if (l != null) {
+ keyStrokeListeners.remove(l);
+ for (KeyStrokeSource s : keyStrokeSources) {
+ l.removeKeyStrokeSource(s);
+ }
+ }
+ }
+
@Deprecated public void fireKeyStroke(KeyStroke stroke) {
if (stroke != null) {
for (KeyStrokeListener l : keyStrokeListeners) {
Modified: VASSAL-src/trunk/src/VASSAL/build/module/map/DrawPile.java
===================================================================
--- VASSAL-src/trunk/src/VASSAL/build/module/map/DrawPile.java 2017-01-20 08:38:39 UTC (rev 9249)
+++ VASSAL-src/trunk/src/VASSAL/build/module/map/DrawPile.java 2017-01-21 23:50:55 UTC (rev 9250)
@@ -812,4 +812,11 @@
}
return l;
}
+
+ public void setup(boolean gameStarting) {
+ super.setup(gameStarting);
+ if (myDeck != null) {
+ myDeck.setup(gameStarting);
+ }
+ }
}
Modified: VASSAL-src/trunk/src/VASSAL/counters/Deck.java
===================================================================
--- VASSAL-src/trunk/src/VASSAL/counters/Deck.java 2017-01-20 08:38:39 UTC (rev 9249)
+++ VASSAL-src/trunk/src/VASSAL/counters/Deck.java 2017-01-21 23:50:55 UTC (rev 9250)
@@ -378,7 +378,6 @@
repaintMap();
}
});
- GameModule.getGameModule().addKeyStrokeListener(shuffleListener);
}
shuffleListener.setKeyStroke(getShuffleKey());
@@ -389,7 +388,6 @@
repaintMap();
}
});
- GameModule.getGameModule().addKeyStrokeListener(reshuffleListener);
}
reshuffleListener.setKeyStroke(getReshuffleKey());
@@ -400,7 +398,6 @@
repaintMap();
}
});
- GameModule.getGameModule().addKeyStrokeListener(reverseListener);
}
reverseListener.setKeyStroke(getReverseKey());
@@ -410,6 +407,19 @@
}
}
+ public void setup(boolean gameStarting) {
+ if (gameStarting) {
+ GameModule.getGameModule().addKeyStrokeListener(shuffleListener);
+ GameModule.getGameModule().addKeyStrokeListener(reshuffleListener);
+ GameModule.getGameModule().addKeyStrokeListener(reverseListener);
+ }
+ else {
+ GameModule.getGameModule().removeKeyStrokeListener(shuffleListener);
+ GameModule.getGameModule().removeKeyStrokeListener(reshuffleListener);
+ GameModule.getGameModule().removeKeyStrokeListener(reverseListener);
+ }
+ }
+
public String getFaceDownOption() {
return faceDownOption;
}
Modified: VASSAL-src/trunk/src/VASSAL/tools/KeyStrokeListener.java
===================================================================
--- VASSAL-src/trunk/src/VASSAL/tools/KeyStrokeListener.java 2017-01-20 08:38:39 UTC (rev 9249)
+++ VASSAL-src/trunk/src/VASSAL/tools/KeyStrokeListener.java 2017-01-21 23:50:55 UTC (rev 9250)
@@ -79,4 +79,13 @@
src.getComponent().registerKeyboardAction(l, key, src.getMode());
}
}
+
+ public void removeKeyStrokeSource(KeyStrokeSource src) {
+ if (src != null) {
+ sources.remove(src);
+ }
+ if (key != null) {
+ src.getComponent().unregisterKeyboardAction(key);
+ }
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
vassalengine-svn mailing list
vas...@li...
https://lists.sourceforge.net/lists/listinfo/vassalengine-svn
|