82 Commits

Author SHA1 Message Date
Miroslav Šedivý
3a96d2611e do not use ref where not needed. 2024-03-17 16:05:02 +01:00
Miroslav Šedivý
4b1fbbf836 fix watchers and intervals. 2024-03-17 11:21:14 +01:00
Miroslav Šedivý
27d88cee08 WIP. 2024-03-17 00:00:14 +01:00
Miroslav Šedivý
37f93eae6b fix private properties. 2024-02-21 18:10:18 +01:00
Miroslav Šedivý
91dee46db4
Add Xorg modifiers ()
* add modifiers.

* use modifiers.

* scroll rename to delta and add ctrl key.
2023-09-11 16:38:12 +02:00
Miroslav Šedivý
c71a9d7626
split touch events to enabled and supported. () 2023-08-31 13:50:57 +02:00
Miroslav Šedivý
0d830998e5
Native touch events ()
* add webrtc touch events.

* bind touch events to overlay.

* we care only for changed touches.

* switch to int32.

* pressure uint16.

* add implicit control.

* add touch to controls.

* fix iteration of changedTouches.

* switch pressure to uint8.

* convert force to pressure.

* add hasTouchEvents.

* add touch_events to state.

* bind touch or gesture handler on demand.

* remove duplicate gesture detach.
2023-08-17 16:16:08 +02:00
Miroslav Šedivý
4918c62c9a
Add support for touch gestures ()
* implement control using webrtc.

* overlay to use NekoControl.

* WIP.

* add is_host to control state.

* control use webrtc only if hosting.

* add proper links to 3rd party code.

* fix button events for gestureHandler.

* lint.

* fix implicit control gain for touch events.
2023-07-07 14:59:54 +02:00
Miroslav Šedivý
fa0ac9d82e
Add touch events ()
* add touch events handler.

* bind events as non-passive.

* fix touch events.
2023-04-28 19:44:35 +02:00
Miroslav Šedivý
9b851aac61 use window matchMedia. 2023-04-19 12:32:48 +02:00
Miroslav Šedivý
f9417db520 add pixel ratio change listener. 2023-04-19 12:32:48 +02:00
Miroslav Šedivý
a79a5cfd39 use canvas size when clearing canvas. 2023-04-19 12:32:48 +02:00
Miroslav Šedivý
d3514b9698
Fix textarea focus for touchscreens with keyboard ()
* check if touchscreen has mouse.

* add inputMode to props.

* fix formatting.
2023-04-18 10:19:52 +02:00
Miroslav Šedivý
1f461cb322
Optimizing canvas for cursor rendering ()
* use dpr as canvas scale.

* wheel use event timestamp.

* remove vue set.

* add cursor rendering fps.
2023-04-13 12:25:36 +02:00
Miroslav Šedivý
84dcd1807c
Throttle cursor events ()
* clear inactive cursors.

* add mouse move throttle.
2023-04-12 13:19:57 +02:00
Miroslav Šedivý
dc2ef37e17
Add mobile keyboard API ()
* fix page for mobile - minor changes.

* fix textarea overlay to hide caret and avodi zooming on mobiles.

* fix typo.

* show keyboard btn if is touch device.

* lint fix.

* add to API.

* mobile keybaord fix andorid blur.

* add mobile keybaord toggle.

* fix overlay.

* mobile keybaord, skip if not a touch device.
2023-01-27 19:21:42 +01:00
Miroslav Šedivý
9307fbea97 fix default cursor tag pos. 2022-10-22 16:37:44 +02:00
Miroslav Šedivý
0371a7dc4c
Add NoVnc keyboard ()
* novnc wip.

* remove blacklistKeys.

* eslint ignore all js files.

* ad common keyboard interface.

* upgrade novnc.

* fix novnc.

* fix novnc keyboard.

* fix keyboard remapping.

* conditionally include novnc at build time.
2022-10-04 20:28:07 +02:00
Miroslav Šedivý
3a75b1bf54 do not trigger changes during IME composition. 2022-10-04 20:23:09 +02:00
Miroslav Šedivý
a6698a3ef2 register mouseup globally. 2022-09-16 10:51:29 +02:00
Miroslav Šedivý
cc6722fee2 remove keybaord reset on mouse leave. 2022-09-16 10:51:29 +02:00
Miroslav Šedivý
a1860d5f56 fix implicit control req: race condition deadlock. 2022-09-15 21:11:42 +02:00
Miroslav Šedivý
abb28b1d10 canvas cursor draw, reset x & y before clear . 2022-08-30 23:02:44 +02:00
Miroslav Šedivý
9a77f6adea
Canvas cursor draw - do not use save and restore. () 2022-08-25 00:14:47 +02:00
Miroslav Šedivý
f4b22e82a9 control pos interface. 2022-07-28 12:44:07 +02:00
Miroslav Šedivý
56b7c8087d rename to wsControl. 2022-07-28 12:44:07 +02:00
Miroslav Šedivý
84708c77d2 overlay send events over WS if not connected. 2022-07-28 12:44:07 +02:00
Miroslav Šedivý
4b2c03b88d overlay onControlChange use control events. 2022-07-28 12:44:07 +02:00
Miroslav Šedivý
6f18bde058 overlay onAction move to control. 2022-07-28 12:44:07 +02:00
Miroslav Šedivý
f3850e022c overlay use control instead of event emitter. 2022-07-28 12:44:07 +02:00
Miroslav Šedivý
cd15007e3c
hide elements around textarea if added by browsers extensions. () 2022-07-28 12:20:42 +02:00
Miroslav Šedivý
2ef599b90e
hide textarea resize. () 2022-07-18 22:59:21 +02:00
Miroslav Šedivý
3b6431ced2 use default cursor. 2022-05-29 20:22:28 +02:00
Miroslav Šedivý
b9c4a9b597 keySymsRemap before clipboard logic. 2022-05-03 21:56:37 +02:00
Miroslav Šedivý
63cad4df72 do not remove focus on mouse leave. 2022-05-03 21:46:16 +02:00
Miroslav Šedivý
9ba33292ea ignored keyup hashmap. 2022-05-01 21:51:10 +02:00
Miroslav Šedivý
d87c78ba50 bi directional clipboard handling over WS. 2022-04-29 00:00:41 +02:00
Miroslav Šedivý
e65c10005e use textarea for pasting. 2022-04-28 22:48:04 +02:00
Miroslav Šedivý
b3eba8bd14 add original event to control events. 2022-02-12 14:25:25 +01:00
Miroslav Šedivý
de62a349ed add overlay events. 2022-01-30 17:09:35 +01:00
Miroslav Šedivý
c67e6c7dc3 use session ID in cursor draw functions. 2021-11-15 19:10:12 +01:00
Miroslav Šedivý
606c9337bb set inactive cursor draw function. 2021-11-01 21:15:57 +01:00
Miroslav Šedivý
077105332f always save inactive cursor. 2021-10-26 22:55:38 +02:00
Miroslav Šedivý
0480a0d512 implement inactive cursors for overlay. 2021-10-26 20:21:28 +02:00
Miroslav Šedivý
5ee38f217e not null compare. 2021-10-26 20:12:55 +02:00
Miroslav Šedivý
9736fe3a5e use MouseEvent type. 2021-10-26 19:32:00 +02:00
Miroslav Šedivý
cae092fb20 session cursors (WIP). 2021-10-26 18:02:01 +02:00
Miroslav Šedivý
3227e691ea custom cursor draw function 2021-10-18 11:14:05 +00:00
Miroslav Šedivý
9d423738c4 consts uppercase. 2021-06-24 16:24:43 +02:00
Miroslav Šedivý
b9bd4d2b8f overlay fix naming. 2021-06-18 21:57:46 +02:00