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
support for kbTab in AWT
[nikiroo-utils.git]
/
src
/
jexer
/
io
/
AWTTerminal.java
diff --git
a/src/jexer/io/AWTTerminal.java
b/src/jexer/io/AWTTerminal.java
index 783cffd4ec5f1fba6e6cd2397dd70a37d380a2a5..8b542402daf5b7321de855fbeffd8d31f09559c7 100644
(file)
--- a/
src/jexer/io/AWTTerminal.java
+++ b/
src/jexer/io/AWTTerminal.java
@@
-92,9
+92,14
@@
public final class AWTTerminal implements ComponentListener, KeyListener,
private List<TInputEvent> eventQueue;
/**
private List<TInputEvent> eventQueue;
/**
- * The
reader thread
.
+ * The
last reported mouse X position
.
*/
*/
- private Thread readerThread;
+ private int oldMouseX = -1;
+
+ /**
+ * The last reported mouse Y position.
+ */
+ private int oldMouseY = -1;
/**
* true if mouse1 was down. Used to report mouse1 on the release event.
/**
* true if mouse1 was down. Used to report mouse1 on the release event.
@@
-202,7
+207,6
@@
public final class AWTTerminal implements ComponentListener, KeyListener,
boolean ctrl = false;
char ch = ' ';
boolean isKey = false;
boolean ctrl = false;
char ch = ' ';
boolean isKey = false;
- int fnKey = 0;
if (key.isActionKey()) {
isKey = true;
} else {
if (key.isActionKey()) {
isKey = true;
} else {
@@
-369,14
+373,18
@@
public final class AWTTerminal implements ComponentListener, KeyListener,
keypress = kbEnter;
break;
case 0x09:
keypress = kbEnter;
break;
case 0x09:
- keypress = kbTab;
+ if (shift) {
+ keypress = kbShiftTab;
+ } else {
+ keypress = kbTab;
+ }
break;
case 0x7F:
keypress = kbDel;
break;
default:
if (!alt && ctrl && !shift) {
break;
case 0x7F:
keypress = kbDel;
break;
default:
if (!alt && ctrl && !shift) {
- ch =
key
.getKeyText(key.getKeyCode()).charAt(0);
+ ch =
KeyEvent
.getKeyText(key.getKeyCode()).charAt(0);
}
// Not a special key, put it together
keypress = new TKeypress(false, 0, ch, alt, ctrl, shift);
}
// Not a special key, put it together
keypress = new TKeypress(false, 0, ch, alt, ctrl, shift);
@@
-566,6
+574,13
@@
public final class AWTTerminal implements ComponentListener, KeyListener,
public void mouseMoved(final MouseEvent mouse) {
int x = screen.textColumn(mouse.getX());
int y = screen.textRow(mouse.getY());
public void mouseMoved(final MouseEvent mouse) {
int x = screen.textColumn(mouse.getX());
int y = screen.textRow(mouse.getY());
+ if ((x == oldMouseX) && (y == oldMouseY)) {
+ // Bail out, we've moved some pixels but not a whole text cell.
+ return;
+ }
+ oldMouseX = x;
+ oldMouseY = y;
+
TMouseEvent mouseEvent = new TMouseEvent(TMouseEvent.Type.MOUSE_MOTION,
x, y, x, y, mouse1, mouse2, mouse3, false, false);
TMouseEvent mouseEvent = new TMouseEvent(TMouseEvent.Type.MOUSE_MOTION,
x, y, x, y, mouse1, mouse2, mouse3, false, false);