git://git.nikiroo.be
/
nikiroo-utils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
TTerminalWindow working
[nikiroo-utils.git]
/
src
/
jexer
/
io
/
ECMA48Terminal.java
diff --git
a/src/jexer/io/ECMA48Terminal.java
b/src/jexer/io/ECMA48Terminal.java
index b8fabda389b5253d10bf5ed0a1b91199eee37bff..f6bc0b3a076c03f358c4c811f0c9a3c8450e46c6 100644
(file)
--- a/
src/jexer/io/ECMA48Terminal.java
+++ b/
src/jexer/io/ECMA48Terminal.java
@@
-61,7
+61,7
@@
import static jexer.TKeypress.*;
* This class reads keystrokes and mouse events and emits output to ANSI
* X3.64 / ECMA-48 type terminals e.g. xterm, linux, vt100, ansi.sys, etc.
*/
* This class reads keystrokes and mouse events and emits output to ANSI
* X3.64 / ECMA-48 type terminals e.g. xterm, linux, vt100, ansi.sys, etc.
*/
-public class ECMA48Terminal implements Runnable {
+public
final
class ECMA48Terminal implements Runnable {
/**
* The session information.
/**
* The session information.
@@
-73,7
+73,7
@@
public class ECMA48Terminal implements Runnable {
*
* @return the SessionInfo
*/
*
* @return the SessionInfo
*/
- public
final
SessionInfo getSessionInfo() {
+ public SessionInfo getSessionInfo() {
return sessionInfo;
}
return sessionInfo;
}
@@
-243,7
+243,7
@@
public class ECMA48Terminal implements Runnable {
};
try {
Process process;
};
try {
Process process;
- if (mode
== true
) {
+ if (mode) {
process = Runtime.getRuntime().exec(cmdRaw);
} else {
process = Runtime.getRuntime().exec(cmdCooked);
process = Runtime.getRuntime().exec(cmdRaw);
} else {
process = Runtime.getRuntime().exec(cmdCooked);
@@
-474,7
+474,7
@@
public class ECMA48Terminal implements Runnable {
// Unknown modifier, bail out
return null;
}
// Unknown modifier, bail out
return null;
}
-
+
switch (key) {
case 1:
return new TKeypressEvent(kbHome, alt, ctrl, shift);
switch (key) {
case 1:
return new TKeypressEvent(kbHome, alt, ctrl, shift);
@@
-530,97
+530,100
@@
public class ECMA48Terminal implements Runnable {
y = windowResize.getHeight() - 1;
}
y = windowResize.getHeight() - 1;
}
- TMouseEvent event = new TMouseEvent(TMouseEvent.Type.MOUSE_DOWN);
- event.x = x;
- event.y = y;
- event.absoluteX = x;
- event.absoluteY = y;
+ TMouseEvent.Type eventType = TMouseEvent.Type.MOUSE_DOWN;
+ boolean eventMouse1 = false;
+ boolean eventMouse2 = false;
+ boolean eventMouse3 = false;
+ boolean eventMouseWheelUp = false;
+ boolean eventMouseWheelDown = false;
// System.err.printf("buttons: %04x\r\n", buttons);
switch (buttons) {
case 0:
// System.err.printf("buttons: %04x\r\n", buttons);
switch (buttons) {
case 0:
- event
.m
ouse1 = true;
+ event
M
ouse1 = true;
mouse1 = true;
break;
case 1:
mouse1 = true;
break;
case 1:
- event
.m
ouse2 = true;
+ event
M
ouse2 = true;
mouse2 = true;
break;
case 2:
mouse2 = true;
break;
case 2:
- event
.m
ouse3 = true;
+ event
M
ouse3 = true;
mouse3 = true;
break;
case 3:
// Release or Move
if (!mouse1 && !mouse2 && !mouse3) {
mouse3 = true;
break;
case 3:
// Release or Move
if (!mouse1 && !mouse2 && !mouse3) {
- event
.t
ype = TMouseEvent.Type.MOUSE_MOTION;
+ event
T
ype = TMouseEvent.Type.MOUSE_MOTION;
} else {
} else {
- event
.t
ype = TMouseEvent.Type.MOUSE_UP;
+ event
T
ype = TMouseEvent.Type.MOUSE_UP;
}
if (mouse1) {
mouse1 = false;
}
if (mouse1) {
mouse1 = false;
- event
.m
ouse1 = true;
+ event
M
ouse1 = true;
}
if (mouse2) {
mouse2 = false;
}
if (mouse2) {
mouse2 = false;
- event
.m
ouse2 = true;
+ event
M
ouse2 = true;
}
if (mouse3) {
mouse3 = false;
}
if (mouse3) {
mouse3 = false;
- event
.m
ouse3 = true;
+ event
M
ouse3 = true;
}
break;
case 32:
// Dragging with mouse1 down
}
break;
case 32:
// Dragging with mouse1 down
- event
.m
ouse1 = true;
+ event
M
ouse1 = true;
mouse1 = true;
mouse1 = true;
- event
.t
ype = TMouseEvent.Type.MOUSE_MOTION;
+ event
T
ype = TMouseEvent.Type.MOUSE_MOTION;
break;
case 33:
// Dragging with mouse2 down
break;
case 33:
// Dragging with mouse2 down
- event
.m
ouse2 = true;
+ event
M
ouse2 = true;
mouse2 = true;
mouse2 = true;
- event
.t
ype = TMouseEvent.Type.MOUSE_MOTION;
+ event
T
ype = TMouseEvent.Type.MOUSE_MOTION;
break;
case 34:
// Dragging with mouse3 down
break;
case 34:
// Dragging with mouse3 down
- event
.m
ouse3 = true;
+ event
M
ouse3 = true;
mouse3 = true;
mouse3 = true;
- event
.t
ype = TMouseEvent.Type.MOUSE_MOTION;
+ event
T
ype = TMouseEvent.Type.MOUSE_MOTION;
break;
case 96:
// Dragging with mouse2 down after wheelUp
break;
case 96:
// Dragging with mouse2 down after wheelUp
- event
.m
ouse2 = true;
+ event
M
ouse2 = true;
mouse2 = true;
mouse2 = true;
- event
.t
ype = TMouseEvent.Type.MOUSE_MOTION;
+ event
T
ype = TMouseEvent.Type.MOUSE_MOTION;
break;
case 97:
// Dragging with mouse2 down after wheelDown
break;
case 97:
// Dragging with mouse2 down after wheelDown
- event
.m
ouse2 = true;
+ event
M
ouse2 = true;
mouse2 = true;
mouse2 = true;
- event
.t
ype = TMouseEvent.Type.MOUSE_MOTION;
+ event
T
ype = TMouseEvent.Type.MOUSE_MOTION;
break;
case 64:
break;
case 64:
- event
.m
ouseWheelUp = true;
+ event
M
ouseWheelUp = true;
break;
case 65:
break;
case 65:
- event
.m
ouseWheelDown = true;
+ event
M
ouseWheelDown = true;
break;
default:
// Unknown, just make it motion
break;
default:
// Unknown, just make it motion
- event
.t
ype = TMouseEvent.Type.MOUSE_MOTION;
+ event
T
ype = TMouseEvent.Type.MOUSE_MOTION;
break;
}
break;
}
- return event;
+ return new TMouseEvent(eventType, x, y, x, y,
+ eventMouse1, eventMouse2, eventMouse3,
+ eventMouseWheelUp, eventMouseWheelDown);
}
/**
}
/**
@@
-631,7
+634,9
@@
public class ECMA48Terminal implements Runnable {
public void getEvents(final List<TInputEvent> queue) {
synchronized (eventQueue) {
if (eventQueue.size() > 0) {
public void getEvents(final List<TInputEvent> queue) {
synchronized (eventQueue) {
if (eventQueue.size() > 0) {
- queue.addAll(eventQueue);
+ synchronized (queue) {
+ queue.addAll(eventQueue);
+ }
eventQueue.clear();
}
}
eventQueue.clear();
}
}
@@
-662,7
+667,9
@@
public class ECMA48Terminal implements Runnable {
synchronized (eventQueue) {
if (eventQueue.size() > 0) {
synchronized (eventQueue) {
if (eventQueue.size() > 0) {
- queue.addAll(eventQueue);
+ synchronized (queue) {
+ queue.addAll(eventQueue);
+ }
eventQueue.clear();
}
}
eventQueue.clear();
}
}
@@
-1442,8
+1449,8
@@
public class ECMA48Terminal implements Runnable {
}
}
} else {
}
}
} else {
- // Wait
5
millis for more data
- Thread.sleep(
5
);
+ // Wait
10
millis for more data
+ Thread.sleep(
10
);
}
// System.err.println("end while loop"); System.err.flush();
} catch (InterruptedException e) {
}
// System.err.println("end while loop"); System.err.flush();
} catch (InterruptedException e) {