aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/org/connectbot/TerminalView.java
diff options
context:
space:
mode:
authorJeremy Klein <jlklein@google.com>2015-09-25 15:32:12 -0700
committerJeremy Klein <jlklein@google.com>2015-10-01 14:56:39 -0700
commite4e3047bd5e9c8e010041aec196a77797e420332 (patch)
tree21ad5198ed3f2985841878e3fd9967b5b4e35225 /app/src/main/java/org/connectbot/TerminalView.java
parent4255b573c13f4f76f4aec515dd78688f428d871a (diff)
downloadconnectbot-e4e3047bd5e9c8e010041aec196a77797e420332.tar.gz
connectbot-e4e3047bd5e9c8e010041aec196a77797e420332.tar.bz2
connectbot-e4e3047bd5e9c8e010041aec196a77797e420332.zip
Add support for mouse wheel forwarding.
Diffstat (limited to 'app/src/main/java/org/connectbot/TerminalView.java')
-rw-r--r--app/src/main/java/org/connectbot/TerminalView.java16
1 files changed, 15 insertions, 1 deletions
diff --git a/app/src/main/java/org/connectbot/TerminalView.java b/app/src/main/java/org/connectbot/TerminalView.java
index 261407c..ffe8d8b 100644
--- a/app/src/main/java/org/connectbot/TerminalView.java
+++ b/app/src/main/java/org/connectbot/TerminalView.java
@@ -52,6 +52,7 @@ import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnection;
import android.widget.Toast;
import de.mud.terminal.VDUBuffer;
+import de.mud.terminal.vt320;
/**
* User interface {@link View} for showing a TerminalBridge in an
@@ -329,7 +330,20 @@ public class TerminalView extends View implements FontSizeChangedListener {
case MotionEvent.ACTION_SCROLL:
// Process scroll wheel movement:
float yDistance = MotionEventCompat.getAxisValue(event, MotionEvent.AXIS_VSCROLL);
- if (yDistance != 0) {
+ boolean mouseReport = ((vt320) bridge.buffer).isMouseReportEnabled();
+ if (mouseReport) {
+ int row = (int) Math.floor(event.getY() / bridge.charHeight);
+ int col = (int) Math.floor(event.getX() / bridge.charWidth);
+
+ ((vt320) bridge.buffer).mouseWheel(
+ yDistance > 0,
+ col,
+ row,
+ (event.getMetaState() & KeyEvent.META_CTRL_ON) != 0,
+ (event.getMetaState() & KeyEvent.META_SHIFT_ON) != 0,
+ (event.getMetaState() & KeyEvent.META_META_ON) != 0);
+ return true;
+ } else if (yDistance != 0) {
int base = bridge.buffer.getWindowBase();
bridge.buffer.setWindowBase(base - Math.round(yDistance));
return true;