Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
48fab33b79 | ||
|
|
8d7a67645b | ||
|
|
186b49d429 | ||
|
|
40a2775f52 | ||
|
|
f802d6001d | ||
|
|
50f66a12da | ||
|
|
d8e6fd21d1 | ||
|
|
0964d83572 |
@@ -19,6 +19,7 @@ android:
|
|||||||
before_install:
|
before_install:
|
||||||
- git clone https://github.com/urho3d/android-ndk.git $HOME/android-ndk
|
- git clone https://github.com/urho3d/android-ndk.git $HOME/android-ndk
|
||||||
- export ANDROID_NDK_HOME=$HOME/android-ndk
|
- export ANDROID_NDK_HOME=$HOME/android-ndk
|
||||||
|
- yes | sdkmanager "platforms;android-27"
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- ./gradlew testDebugUnitTest
|
- ./gradlew testDebugUnitTest
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ android {
|
|||||||
buildToolsVersion "27.0.2"
|
buildToolsVersion "27.0.2"
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'com.android.support:support-annotations:27.0.1'
|
implementation 'com.android.support:support-annotations:27.0.2'
|
||||||
implementation "com.android.support:support-core-ui:27.0.1"
|
implementation "com.android.support:support-core-ui:27.0.2"
|
||||||
implementation project(":terminal-view")
|
implementation project(":terminal-view")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -14,8 +14,8 @@ android {
|
|||||||
applicationId "com.termux"
|
applicationId "com.termux"
|
||||||
minSdkVersion 21
|
minSdkVersion 21
|
||||||
targetSdkVersion 27
|
targetSdkVersion 27
|
||||||
versionCode 57
|
versionCode 60
|
||||||
versionName "0.57"
|
versionName "0.60"
|
||||||
}
|
}
|
||||||
|
|
||||||
buildTypes {
|
buildTypes {
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
android:name="com.termux.app.TermuxActivity"
|
android:name="com.termux.app.TermuxActivity"
|
||||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
|
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
|
||||||
android:launchMode="singleTask"
|
android:launchMode="singleTask"
|
||||||
|
android:resizeableActivity="true"
|
||||||
android:windowSoftInputMode="adjustResize|stateAlwaysVisible" >
|
android:windowSoftInputMode="adjustResize|stateAlwaysVisible" >
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN" />
|
||||||
@@ -49,6 +50,7 @@
|
|||||||
android:exported="false"
|
android:exported="false"
|
||||||
android:theme="@android:style/Theme.Material.Light.DarkActionBar"
|
android:theme="@android:style/Theme.Material.Light.DarkActionBar"
|
||||||
android:parentActivityName=".app.TermuxActivity"
|
android:parentActivityName=".app.TermuxActivity"
|
||||||
|
android:resizeableActivity="true"
|
||||||
android:label="@string/application_name" />
|
android:label="@string/application_name" />
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
@@ -56,6 +58,7 @@
|
|||||||
android:label="@string/application_name"
|
android:label="@string/application_name"
|
||||||
android:taskAffinity="com.termux.filereceiver"
|
android:taskAffinity="com.termux.filereceiver"
|
||||||
android:excludeFromRecents="true"
|
android:excludeFromRecents="true"
|
||||||
|
android:resizeableActivity="true"
|
||||||
android:noHistory="true">
|
android:noHistory="true">
|
||||||
<!-- Accept multiple file types when sending. -->
|
<!-- Accept multiple file types when sending. -->
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
<!-- Screen border. -->
|
<!-- Screen border. -->
|
||||||
<path android:fillColor="#00000000"
|
<path android:fillColor="#00000000"
|
||||||
android:strokeColor="#000"
|
android:strokeColor="#FFF"
|
||||||
android:strokeWidth="3"
|
android:strokeWidth="3"
|
||||||
android:pathData="M7,4
|
android:pathData="M7,4
|
||||||
l34,0
|
l34,0
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- Block cursor. -->
|
<!-- Block cursor. -->
|
||||||
<path android:fillColor="#000"
|
<path android:fillColor="#FFF"
|
||||||
android:pathData="M14,14
|
android:pathData="M14,14
|
||||||
l5,0
|
l5,0
|
||||||
l0,10
|
l0,10
|
||||||
|
|||||||
@@ -301,6 +301,11 @@ public final class TerminalEmulator {
|
|||||||
* @param mouseButton one of the MOUSE_* constants of this class.
|
* @param mouseButton one of the MOUSE_* constants of this class.
|
||||||
*/
|
*/
|
||||||
public void sendMouseEvent(int mouseButton, int column, int row, boolean pressed) {
|
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)) {
|
if (mouseButton == MOUSE_LEFT_BUTTON_MOVED && !isDecsetInternalBitSet(DECSET_BIT_MOUSE_TRACKING_BUTTON_EVENT)) {
|
||||||
// Do not send tracking.
|
// Do not send tracking.
|
||||||
} else if (isDecsetInternalBitSet(DECSET_BIT_MOUSE_PROTOCOL_SGR)) {
|
} else if (isDecsetInternalBitSet(DECSET_BIT_MOUSE_PROTOCOL_SGR)) {
|
||||||
@@ -308,7 +313,7 @@ public final class TerminalEmulator {
|
|||||||
} else {
|
} else {
|
||||||
mouseButton = pressed ? mouseButton : 3; // 3 for release of all buttons.
|
mouseButton = pressed ? mouseButton : 3; // 3 for release of all buttons.
|
||||||
// Clip to screen, and clip to the limits of 8-bit data.
|
// 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) {
|
if (!out_of_bounds) {
|
||||||
byte[] data = {'\033', '[', 'M', (byte) (32 + mouseButton), (byte) (32 + column), (byte) (32 + row)};
|
byte[] data = {'\033', '[', 'M', (byte) (32 + mouseButton), (byte) (32 + column), (byte) (32 + row)};
|
||||||
mSession.write(data, 0, data.length);
|
mSession.write(data, 0, data.length);
|
||||||
|
|||||||
@@ -55,6 +55,14 @@ public class TerminalTest extends TerminalTestCase {
|
|||||||
assertEquals("\033[<0;3;4M", mOutput.getOutputAndClear());
|
assertEquals("\033[<0;3;4M", mOutput.getOutputAndClear());
|
||||||
mTerminal.sendMouseEvent(TerminalEmulator.MOUSE_LEFT_BUTTON, 3, 4, false);
|
mTerminal.sendMouseEvent(TerminalEmulator.MOUSE_LEFT_BUTTON, 3, 4, false);
|
||||||
assertEquals("\033[<0;3;4m", mOutput.getOutputAndClear());
|
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 {
|
public void testNormalization() throws UnsupportedEncodingException {
|
||||||
|
|||||||
Reference in New Issue
Block a user