diff --git a/DroidFish/res/values/strings.xml b/DroidFish/res/values/strings.xml
index 709a410..4bc738b 100644
--- a/DroidFish/res/values/strings.xml
+++ b/DroidFish/res/values/strings.xml
@@ -6,6 +6,7 @@
60
120000
0
+ 0
12
2
2
@@ -276,6 +277,8 @@ you are not actively using the program.\
Enable this if you think scrolling moves in the wrong direction
Left-handed mode
Controls on left side in landscape mode
+ Square selection
+ Control how selecting squares on the chess board behaves
Text Size
Font size for move list and game information
Large Buttons
@@ -499,6 +502,14 @@ you are not actively using the program.\
- 30000
- 60000
+
+ - Sticky
+ - Toggle
+
+
+ - 0
+ - 1
+
- Small
- Medium
diff --git a/DroidFish/res/xml/preferences.xml b/DroidFish/res/xml/preferences.xml
index 06ada7d..4dd6630 100644
--- a/DroidFish/res/xml/preferences.xml
+++ b/DroidFish/res/xml/preferences.xml
@@ -172,6 +172,14 @@
android:summary="@string/prefs_leftHanded_summary"
android:defaultValue="false">
+
+
moveHints;
@@ -106,6 +107,7 @@ public class ChessBoard extends View {
flipped = false;
drawSquareLabels = false;
oneTouchMoves = false;
+ toggleSelection = false;
darkPaint = new Paint();
brightPaint = new Paint();
@@ -610,8 +612,11 @@ public class ChessBoard extends View {
if (!oneTouchMoves) {
int p = pos.getPiece(sq);
if (selectedSquare != -1) {
- if (sq == selectedSquare)
+ if (sq == selectedSquare) {
+ if (toggleSelection)
+ setSelection(-1);
return null;
+ }
if (!myColor(p)) {
Move m = new Move(selectedSquare, sq, Piece.EMPTY);
setSelection(sq);
@@ -625,8 +630,11 @@ public class ChessBoard extends View {
}
} else {
int prevSq = userSelectedSquare ? selectedSquare : -1;
- if (prevSq == sq)
+ if (prevSq == sq) {
+ if (toggleSelection)
+ setSelection(-1);
return null;
+ }
ArrayList moves = new MoveGen().legalMoves(pos);
Move matchingMove = null;
if (prevSq >= 0)
diff --git a/DroidFish/src/org/petero/droidfish/DroidFish.java b/DroidFish/src/org/petero/droidfish/DroidFish.java
index 8c9a558..b121e10 100644
--- a/DroidFish/src/org/petero/droidfish/DroidFish.java
+++ b/DroidFish/src/org/petero/droidfish/DroidFish.java
@@ -490,6 +490,7 @@ public class DroidFish extends Activity implements GUIInterface {
cb.setFlipped(oldCB.flipped);
cb.setDrawSquareLabels(oldCB.drawSquareLabels);
cb.oneTouchMoves = oldCB.oneTouchMoves;
+ cb.toggleSelection = oldCB.toggleSelection;
setSelection(oldCB.selectedSquare);
cb.userSelectedSquare = oldCB.userSelectedSquare;
setStatusString(statusStr);
@@ -755,6 +756,7 @@ public class DroidFish extends Activity implements GUIInterface {
boolean drawSquareLabels = settings.getBoolean("drawSquareLabels", false);
cb.setDrawSquareLabels(drawSquareLabels);
cb.oneTouchMoves = settings.getBoolean("oneTouchMoves", false);
+ cb.toggleSelection = getIntSetting("squareSelectType", 0) == 1;
mShowThinking = settings.getBoolean("showThinking", false);
mShowStats = settings.getBoolean("showStats", true);