Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
40a2775f52 | ||
|
|
f802d6001d | ||
|
|
50f66a12da | ||
|
|
d8e6fd21d1 | ||
|
|
0964d83572 |
@@ -5,8 +5,8 @@ android {
|
||||
buildToolsVersion "27.0.2"
|
||||
|
||||
dependencies {
|
||||
implementation 'com.android.support:support-annotations:27.0.1'
|
||||
implementation "com.android.support:support-core-ui:27.0.1"
|
||||
implementation 'com.android.support:support-annotations:27.0.2'
|
||||
implementation "com.android.support:support-core-ui:27.0.2"
|
||||
implementation project(":terminal-view")
|
||||
}
|
||||
|
||||
@@ -14,8 +14,8 @@ android {
|
||||
applicationId "com.termux"
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 27
|
||||
versionCode 57
|
||||
versionName "0.57"
|
||||
versionCode 59
|
||||
versionName "0.59"
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
android:name="com.termux.app.TermuxActivity"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
|
||||
android:launchMode="singleTask"
|
||||
android:resizeableActivity="true"
|
||||
android:windowSoftInputMode="adjustResize|stateAlwaysVisible" >
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
@@ -49,6 +50,7 @@
|
||||
android:exported="false"
|
||||
android:theme="@android:style/Theme.Material.Light.DarkActionBar"
|
||||
android:parentActivityName=".app.TermuxActivity"
|
||||
android:resizeableActivity="true"
|
||||
android:label="@string/application_name" />
|
||||
|
||||
<activity
|
||||
@@ -56,6 +58,7 @@
|
||||
android:label="@string/application_name"
|
||||
android:taskAffinity="com.termux.filereceiver"
|
||||
android:excludeFromRecents="true"
|
||||
android:resizeableActivity="true"
|
||||
android:noHistory="true">
|
||||
<!-- Accept multiple file types when sending. -->
|
||||
<intent-filter>
|
||||
|
||||
@@ -301,6 +301,11 @@ public final class TerminalEmulator {
|
||||
* @param mouseButton one of the MOUSE_* constants of this class.
|
||||
*/
|
||||
public void sendMouseEvent(int mouseButton, int column, int row, boolean pressed) {
|
||||
if (column < 1) column = 1;
|
||||
if (column > mColumns) column = mColumns;
|
||||
if (row < 1) row = 1;
|
||||
if (row > mRows) row = mRows;
|
||||
|
||||
if (mouseButton == MOUSE_LEFT_BUTTON_MOVED && !isDecsetInternalBitSet(DECSET_BIT_MOUSE_TRACKING_BUTTON_EVENT)) {
|
||||
// Do not send tracking.
|
||||
} else if (isDecsetInternalBitSet(DECSET_BIT_MOUSE_PROTOCOL_SGR)) {
|
||||
@@ -308,7 +313,7 @@ public final class TerminalEmulator {
|
||||
} else {
|
||||
mouseButton = pressed ? mouseButton : 3; // 3 for release of all buttons.
|
||||
// Clip to screen, and clip to the limits of 8-bit data.
|
||||
boolean out_of_bounds = column < 1 || row < 1 || column > mColumns || row > mRows || column > 255 - 32 || row > 255 - 32;
|
||||
boolean out_of_bounds = column > 255 - 32 || row > 255 - 32;
|
||||
if (!out_of_bounds) {
|
||||
byte[] data = {'\033', '[', 'M', (byte) (32 + mouseButton), (byte) (32 + column), (byte) (32 + row)};
|
||||
mSession.write(data, 0, data.length);
|
||||
|
||||
@@ -55,6 +55,14 @@ public class TerminalTest extends TerminalTestCase {
|
||||
assertEquals("\033[<0;3;4M", mOutput.getOutputAndClear());
|
||||
mTerminal.sendMouseEvent(TerminalEmulator.MOUSE_LEFT_BUTTON, 3, 4, false);
|
||||
assertEquals("\033[<0;3;4m", mOutput.getOutputAndClear());
|
||||
|
||||
// When the client says that a click is outside (which could happen when pixels are outside
|
||||
// the terminal area, see https://github.com/termux/termux-app/issues/501) the terminal
|
||||
// sends a click at the edge.
|
||||
mTerminal.sendMouseEvent(TerminalEmulator.MOUSE_LEFT_BUTTON, 0, 0, true);
|
||||
assertEquals("\033[<0;1;1M", mOutput.getOutputAndClear());
|
||||
mTerminal.sendMouseEvent(TerminalEmulator.MOUSE_LEFT_BUTTON, 11, 11, false);
|
||||
assertEquals("\033[<0;10;10m", mOutput.getOutputAndClear());
|
||||
}
|
||||
|
||||
public void testNormalization() throws UnsupportedEncodingException {
|
||||
|
||||
Reference in New Issue
Block a user