Refactor: XVNC_BUTTONS numbers correspond to X button numbers

This commit is contained in:
Dmitry Maksyoma 2022-10-14 00:24:59 +13:00
parent 7f0d08d4d3
commit 39856f8ee8
3 changed files with 19 additions and 12 deletions

View File

@ -274,6 +274,9 @@ const UI = {
return mouseButtonMapper; return mouseButtonMapper;
} }
mouseButtonMapper.set(0, XVNC_BUTTONS.LEFT_BUTTON);
mouseButtonMapper.set(1, XVNC_BUTTONS.MIDDLE_BUTTON);
mouseButtonMapper.set(2, XVNC_BUTTONS.RIGHT_BUTTON);
mouseButtonMapper.set(3, XVNC_BUTTONS.BACK_BUTTON); mouseButtonMapper.set(3, XVNC_BUTTONS.BACK_BUTTON);
mouseButtonMapper.set(4, XVNC_BUTTONS.FORWARD_BUTTON); mouseButtonMapper.set(4, XVNC_BUTTONS.FORWARD_BUTTON);
WebUtil.writeSetting("mouseButtonMapper", mouseButtonMapper.dump()); WebUtil.writeSetting("mouseButtonMapper", mouseButtonMapper.dump());

View File

@ -1,15 +1,19 @@
export const XVNC_BUTTONS = { export const XVNC_BUTTONS = {
LEFT_BUTTON: 0, LEFT_BUTTON: 1,
MIDDLE_BUTTON: 1, MIDDLE_BUTTON: 2,
RIGHT_BUTTON: 2, RIGHT_BUTTON: 3,
TURN_SCROLL_WHEEL_UP: 3, TURN_SCROLL_WHEEL_UP: 4,
TURN_SCROLL_WHEEL_DOWN: 4, TURN_SCROLL_WHEEL_DOWN: 5,
PUSH_SCROLL_WHEEL_LEFT: 5, PUSH_SCROLL_WHEEL_LEFT: 6,
PUSH_SCROLL_WHEEL_RIGHT: 6, PUSH_SCROLL_WHEEL_RIGHT: 7,
BACK_BUTTON: 7, BACK_BUTTON: 8,
FORWARD_BUTTON: 8 FORWARD_BUTTON: 9
}; };
export function xvncButtonToMask(xvncButton) {
return 1 << (xvncButton - 1);
}
export default class MouseButtonMapper { export default class MouseButtonMapper {
constructor() { constructor() {
this.map = new Map(); this.map = new Map();

View File

@ -26,7 +26,7 @@ import DES from "./des.js";
import KeyTable from "./input/keysym.js"; import KeyTable from "./input/keysym.js";
import XtScancode from "./input/xtscancodes.js"; import XtScancode from "./input/xtscancodes.js";
import { encodings } from "./encodings.js"; import { encodings } from "./encodings.js";
import MouseButtonMapper from "./mousebuttonmapper.js"; import { MouseButtonMapper, xvncButtonToMask } from "./mousebuttonmapper.js";
import RawDecoder from "./decoders/raw.js"; import RawDecoder from "./decoders/raw.js";
import CopyRectDecoder from "./decoders/copyrect.js"; import CopyRectDecoder from "./decoders/copyrect.js";
@ -1578,11 +1578,11 @@ export default class RFB extends EventTargetMixin {
this.checkLocalClipboard(); this.checkLocalClipboard();
this._handleMouseButton(pos.x, pos.y, this._handleMouseButton(pos.x, pos.y,
true, 1 << mappedButton); true, xvncButtonToMask(mappedButton));
break; break;
case 'mouseup': case 'mouseup':
this._handleMouseButton(pos.x, pos.y, this._handleMouseButton(pos.x, pos.y,
false, 1 << mappedButton); false, xvncButtonToMask(mappedButton));
break; break;
case 'mousemove': case 'mousemove':
this._handleMouseMove(pos.x, pos.y); this._handleMouseMove(pos.x, pos.y);