in ui/src/com/jediterm/terminal/ui/TerminalPanel.java [1053:1120]
public void addTerminalMouseListener(final TerminalMouseListener listener) {
addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
if (mySettingsProvider.enableMouseReporting() && isRemoteMouseAction(e)) {
Point p = panelToCharCoords(e.getPoint());
listener.mousePressed(p.x, p.y, new AwtMouseEvent(e));
}
}
@Override
public void mouseReleased(MouseEvent e) {
if (mySettingsProvider.enableMouseReporting() && isRemoteMouseAction(e)) {
Point p = panelToCharCoords(e.getPoint());
listener.mouseReleased(p.x, p.y, new AwtMouseEvent(e));
}
}
});
addMouseWheelListener(e -> {
if (mySettingsProvider.enableMouseReporting() && isRemoteMouseAction(e)) {
updateSelection(null);
Point p = panelToCharCoords(e.getPoint());
listener.mouseWheelMoved(p.x, p.y, new AwtMouseWheelEvent(e));
}
else if (myTerminalTextBuffer.isUsingAlternateBuffer() &&
mySettingsProvider.simulateMouseScrollWithArrowKeysInAlternativeScreen() &&
!e.isShiftDown() /* skip horizontal scrolls */
) {
//Send Arrow keys instead
Integer key;
if (e.getWheelRotation() < 0) {
key = KeyEvent.VK_UP;
}
else if (e.getWheelRotation() > 0) {
key = KeyEvent.VK_DOWN;
}
else {
key = null;
}
if (key != null) {
byte[] arrowKeys = myTerminalStarter.getTerminal().getCodeForKey(key, 0);
for (int i = 0; i < Math.abs(e.getUnitsToScroll()); i++) {
myTerminalStarter.sendBytes(arrowKeys, false);
}
e.consume();
}
}
});
addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseMoved(MouseEvent e) {
if (mySettingsProvider.enableMouseReporting() && isRemoteMouseAction(e)) {
Point p = panelToCharCoords(e.getPoint());
listener.mouseMoved(p.x, p.y, new AwtMouseEvent(e));
}
}
@Override
public void mouseDragged(MouseEvent e) {
if (mySettingsProvider.enableMouseReporting() && isRemoteMouseAction(e)) {
Point p = panelToCharCoords(e.getPoint());
listener.mouseDragged(p.x, p.y, new AwtMouseEvent(e));
}
}
});
}