fix: Fixed mouse position on console
Server Deploy / deploy (push) Successful in 39s

This commit is contained in:
2026-07-20 09:36:57 +01:00
parent a02747d02e
commit 963fa9c877
2 changed files with 46 additions and 10 deletions
+23 -6
View File
@@ -17,10 +17,26 @@ export function openConsole(
client.connect(connectData);
// Wire keyboard + mouse.
const mouse = new Guacamole.Mouse(client.getDisplay().getElement());
mouse.onmousedown = mouse.onmouseup = mouse.onmousemove = (state: any) =>
client.sendMouseState(state);
const display = client.getDisplay();
let scale = 1;
// Wire keyboard + mouse. The display element is rendered at `scale` of the
// remote's native resolution, but Guacamole.Mouse reports coordinates in
// element (on-screen) pixels. Divide by scale to map back to remote
// coordinates, otherwise the cursor is offset.
const mouse = new Guacamole.Mouse(display.getElement());
mouse.onmousedown = mouse.onmouseup = mouse.onmousemove = (state: any) => {
const s = new Guacamole.Mouse.State(
state.x / scale,
state.y / scale,
state.left,
state.middle,
state.right,
state.up,
state.down
);
client.sendMouseState(s);
};
const keyboard = new Guacamole.Keyboard(document);
keyboard.onkeydown = (k: number) => client.sendKeyEvent(1, k);
keyboard.onkeyup = (k: number) => client.sendKeyEvent(0, k);
@@ -29,8 +45,9 @@ export function openConsole(
disconnect() {
client.disconnect();
},
setScale(scale: number) {
client.getDisplay().scale(scale);
setScale(s: number) {
scale = s;
display.scale(s);
},
};
}