# HG changeset patch
# Parent a2c9d530be786e2dfaa3cc3873b4165fbb6536e2
Fix broken arrow keys to move "selecting for copy" cursor.

diff --git a/src/org/connectbot/ConsoleActivity.java b/src/org/connectbot/ConsoleActivity.java
--- a/src/org/connectbot/ConsoleActivity.java
+++ b/src/org/connectbot/ConsoleActivity.java
@@ -649,6 +649,8 @@
 				SelectionArea area = copySource.getSelectionArea();
 				area.reset();
 				area.setBounds(copySource.buffer.getColumns(), copySource.buffer.getRows());
+				area.setRow(copySource.buffer.getCursorRow());
+				area.setColumn(copySource.buffer.getCursorColumn());
 
 				copySource.setSelectingForCopy(true);
 
diff --git a/src/org/connectbot/service/TerminalKeyListener.java b/src/org/connectbot/service/TerminalKeyListener.java
--- a/src/org/connectbot/service/TerminalKeyListener.java
+++ b/src/org/connectbot/service/TerminalKeyListener.java
@@ -18,6 +18,7 @@
 
 import java.io.IOException;
 
+import org.connectbot.R;
 import org.connectbot.TerminalView;
 import org.connectbot.bean.SelectionArea;
 import org.connectbot.util.PreferenceConstants;
@@ -72,7 +73,6 @@
 	private int metaState = 0;
 
 	private ClipboardManager clipboard = null;
-	private boolean selectingForCopy = false;
 	private final SelectionArea selectionArea;
 
 	private String encoding;
@@ -88,7 +88,7 @@
 		this.buffer = buffer;
 		this.encoding = encoding;
 
-		selectionArea = new SelectionArea();
+		selectionArea = bridge.getSelectionArea();
 
 		prefs = PreferenceManager.getDefaultSharedPreferences(manager);
 		prefs.registerOnSharedPreferenceChangeListener(this);
@@ -307,7 +307,7 @@
 				return true;
 
 			case KeyEvent.KEYCODE_DPAD_LEFT:
-				if (selectingForCopy) {
+				if (bridge.isSelectingForCopy()) {
 					selectionArea.decrementColumn();
 					bridge.redraw();
 				} else {
@@ -319,7 +319,7 @@
 				return true;
 
 			case KeyEvent.KEYCODE_DPAD_UP:
-				if (selectingForCopy) {
+				if (bridge.isSelectingForCopy()) {
 					selectionArea.decrementRow();
 					bridge.redraw();
 				} else {
@@ -331,7 +331,7 @@
 				return true;
 
 			case KeyEvent.KEYCODE_DPAD_DOWN:
-				if (selectingForCopy) {
+				if (bridge.isSelectingForCopy()) {
 					selectionArea.incrementRow();
 					bridge.redraw();
 				} else {
@@ -343,7 +343,7 @@
 				return true;
 
 			case KeyEvent.KEYCODE_DPAD_RIGHT:
-				if (selectingForCopy) {
+				if (bridge.isSelectingForCopy()) {
 					selectionArea.incrementColumn();
 					bridge.redraw();
 				} else {
@@ -355,7 +355,7 @@
 				return true;
 
 			case KeyEvent.KEYCODE_DPAD_CENTER:
-				if (selectingForCopy) {
+				if (bridge.isSelectingForCopy()) {
 					if (selectionArea.isSelectingOrigin())
 						selectionArea.finishSelectingOrigin();
 					else {
@@ -364,12 +364,11 @@
 							String copiedText = selectionArea.copyFrom(buffer);
 
 							clipboard.setText(copiedText);
-							// XXX STOPSHIP
-//							manager.notifyUser(manager.getString(
-//									R.string.console_copy_done,
-//									copiedText.length()));
+							((TerminalView)v).notifyUser(manager.res.getString(
+									R.string.console_copy_done,
+									copiedText.length()));
 
-							selectingForCopy = false;
+							bridge.setSelectingForCopy(false);
 							selectionArea.reset();
 						}
 					}
