diff options
author | Jeremy Klein <jlklein@google.com> | 2015-09-25 15:32:12 -0700 |
---|---|---|
committer | Jeremy Klein <jlklein@google.com> | 2015-10-01 14:56:39 -0700 |
commit | e4e3047bd5e9c8e010041aec196a77797e420332 (patch) | |
tree | 21ad5198ed3f2985841878e3fd9967b5b4e35225 /app/src/main/java/org/connectbot/TerminalView.java | |
parent | 4255b573c13f4f76f4aec515dd78688f428d871a (diff) | |
download | connectbot-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.java | 16 |
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; |