aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/org/connectbot/ConsoleActivity.java
diff options
context:
space:
mode:
authorJeremy Klein <jlklein@google.com>2015-10-01 10:39:14 -0700
committerJeremy Klein <jlklein@google.com>2015-10-01 14:56:39 -0700
commit5f3101b7ed33e53ab33c8df3c73ccd7f7b5fd31f (patch)
tree6420f3f586cfbff5b440ebea6ce4e0cd320e18ed /app/src/main/java/org/connectbot/ConsoleActivity.java
parenta11834b6021b2d943efeee73b1af38179dcea5a4 (diff)
downloadconnectbot-5f3101b7ed33e53ab33c8df3c73ccd7f7b5fd31f.tar.gz
connectbot-5f3101b7ed33e53ab33c8df3c73ccd7f7b5fd31f.tar.bz2
connectbot-5f3101b7ed33e53ab33c8df3c73ccd7f7b5fd31f.zip
More lint fixes.
Diffstat (limited to 'app/src/main/java/org/connectbot/ConsoleActivity.java')
-rw-r--r--app/src/main/java/org/connectbot/ConsoleActivity.java99
1 files changed, 59 insertions, 40 deletions
diff --git a/app/src/main/java/org/connectbot/ConsoleActivity.java b/app/src/main/java/org/connectbot/ConsoleActivity.java
index 66617f2..d628a07 100644
--- a/app/src/main/java/org/connectbot/ConsoleActivity.java
+++ b/app/src/main/java/org/connectbot/ConsoleActivity.java
@@ -745,56 +745,20 @@ public class ConsoleActivity extends AppCompatActivity implements BridgeDisconne
public boolean onTouch(View v, MotionEvent event) {
TerminalBridge bridge = adapter.getCurrentTerminalView().bridge;
- int row = (int) Math.floor(event.getY() / bridge.charHeight);
- int col = (int) Math.floor(event.getX() / bridge.charWidth);
// Handle mouse-specific actions.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH &&
MotionEventCompat.getSource(event) == InputDevice.SOURCE_MOUSE) {
- int meta = event.getMetaState();
- boolean shiftOn = (event.getMetaState() & KeyEvent.META_SHIFT_ON) != 0;
- boolean mouseReport = ((vt320) bridge.buffer).isMouseReportEnabled();
-
- // MouseReport can be "defeated" using the shift key.
- if ((!mouseReport || shiftOn)) {
- if (event.getAction() == MotionEvent.ACTION_DOWN) {
- switch (event.getButtonState()) {
- case MotionEvent.BUTTON_PRIMARY:
- // Automatically start copy mode if using a mouse.
- startCopyMode();
- break;
- case MotionEvent.BUTTON_SECONDARY:
- openContextMenu(pager);
- return true;
- case MotionEvent.BUTTON_TERTIARY:
- // Middle click pastes.
- pasteIntoTerminal();
- return true;
- }
- }
- } else if (event.getAction() == MotionEvent.ACTION_DOWN) {
- ((vt320) bridge.buffer).mousePressed(
- col, row, mouseEventToJavaModifiers(event));
- } else if (event.getAction() == MotionEvent.ACTION_UP) {
- ((vt320) bridge.buffer).mouseReleased(col, row);
- } else if (event.getAction() == MotionEvent.ACTION_MOVE) {
- int buttonState = event.getButtonState();
- int button = (buttonState & MotionEvent.BUTTON_PRIMARY) != 0 ? 0 :
- (buttonState & MotionEvent.BUTTON_SECONDARY) != 0 ? 1 :
- (buttonState & MotionEvent.BUTTON_TERTIARY) != 0 ? 2 : 3;
- ((vt320) bridge.buffer).mouseMoved(
- button,
- col,
- row,
- (event.getMetaState() & KeyEvent.META_CTRL_ON) != 0,
- (event.getMetaState() & KeyEvent.META_SHIFT_ON) != 0,
- (event.getMetaState() & KeyEvent.META_META_ON) != 0);
+ if (onMouseEvent(event, bridge)) {
+ return true;
}
}
// when copying, highlight the area
if (copySource != null && copySource.isSelectingForCopy()) {
SelectionArea area = copySource.getSelectionArea();
+ int row = (int) Math.floor(event.getY() / bridge.charHeight);
+ int col = (int) Math.floor(event.getX() / bridge.charWidth);
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
@@ -864,6 +828,61 @@ public class ConsoleActivity extends AppCompatActivity implements BridgeDisconne
return detect.onTouchEvent(event);
}
+ /**
+ * @param event
+ * @param bridge
+ * @return True if the event is handled.
+ */
+ @TargetApi(14)
+ private boolean onMouseEvent(MotionEvent event, TerminalBridge bridge) {
+ int row = (int) Math.floor(event.getY() / bridge.charHeight);
+ int col = (int) Math.floor(event.getX() / bridge.charWidth);
+ int meta = event.getMetaState();
+ boolean shiftOn = (meta & KeyEvent.META_SHIFT_ON) != 0;
+ boolean mouseReport = ((vt320) bridge.buffer).isMouseReportEnabled();
+
+ // MouseReport can be "defeated" using the shift key.
+ if ((!mouseReport || shiftOn)) {
+ if (event.getAction() == MotionEvent.ACTION_DOWN) {
+ switch (event.getButtonState()) {
+ case MotionEvent.BUTTON_PRIMARY:
+ // Automatically start copy mode if using a mouse.
+ startCopyMode();
+ break;
+ case MotionEvent.BUTTON_SECONDARY:
+ openContextMenu(pager);
+ return true;
+ case MotionEvent.BUTTON_TERTIARY:
+ // Middle click pastes.
+ pasteIntoTerminal();
+ return true;
+ }
+ }
+ } else if (event.getAction() == MotionEvent.ACTION_DOWN) {
+ ((vt320) bridge.buffer).mousePressed(
+ col, row, mouseEventToJavaModifiers(event));
+ return true;
+ } else if (event.getAction() == MotionEvent.ACTION_UP) {
+ ((vt320) bridge.buffer).mouseReleased(col, row);
+ return true;
+ } else if (event.getAction() == MotionEvent.ACTION_MOVE) {
+ int buttonState = event.getButtonState();
+ int button = (buttonState & MotionEvent.BUTTON_PRIMARY) != 0 ? 0 :
+ (buttonState & MotionEvent.BUTTON_SECONDARY) != 0 ? 1 :
+ (buttonState & MotionEvent.BUTTON_TERTIARY) != 0 ? 2 : 3;
+ ((vt320) bridge.buffer).mouseMoved(
+ button,
+ col,
+ row,
+ (meta & KeyEvent.META_CTRL_ON) != 0,
+ (meta & KeyEvent.META_SHIFT_ON) != 0,
+ (meta & KeyEvent.META_META_ON) != 0);
+ return true;
+ }
+
+ return false;
+ }
+
});
}