Skip to content

Commit

Permalink
Fix mouse support not reporting button release
Browse files Browse the repository at this point in the history
  • Loading branch information
gnodet committed Feb 12, 2018
1 parent 5099a10 commit bc273be
Showing 1 changed file with 18 additions and 3 deletions.
21 changes: 18 additions & 3 deletions terminal/src/main/java/org/jline/terminal/impl/MouseSupport.java
Original file line number Diff line number Diff line change
Expand Up @@ -75,15 +75,30 @@ public static MouseEvent readMouse(IntSupplier reader, MouseEvent last) {
switch (b) {
case 0:
button = MouseEvent.Button.Button1;
type = last.getButton() == button ? MouseEvent.Type.Dragged : MouseEvent.Type.Pressed;
if (last.getButton() == button
&& (last.getType() == MouseEvent.Type.Pressed || last.getType() == MouseEvent.Type.Dragged)) {
type = MouseEvent.Type.Dragged;
} else {
type = MouseEvent.Type.Pressed;
}
break;
case 1:
button = MouseEvent.Button.Button2;
type = last.getButton() == button ? MouseEvent.Type.Dragged : MouseEvent.Type.Pressed;
if (last.getButton() == button
&& (last.getType() == MouseEvent.Type.Pressed || last.getType() == MouseEvent.Type.Dragged)) {
type = MouseEvent.Type.Dragged;
} else {
type = MouseEvent.Type.Pressed;
}
break;
case 2:
button = MouseEvent.Button.Button3;
type = last.getButton() == button ? MouseEvent.Type.Dragged : MouseEvent.Type.Pressed;
if (last.getButton() == button
&& (last.getType() == MouseEvent.Type.Pressed || last.getType() == MouseEvent.Type.Dragged)) {
type = MouseEvent.Type.Dragged;
} else {
type = MouseEvent.Type.Pressed;
}
break;
default:
if (last.getType() == MouseEvent.Type.Pressed || last.getType() == MouseEvent.Type.Dragged) {
Expand Down

0 comments on commit bc273be

Please sign in to comment.