Commit Graph

106 Commits

Author SHA1 Message Date
quickiwiki 5e83e8d452
KASM-7660 Fix "Exception using multi-monitor: HTMLElement object could not be cloned" (#163) 2025-09-02 10:02:48 -04:00
quickiwiki e7a2f06dae
Bugfix/multi monitor issues (#154)
* VNC-212 Fix monitors addition issue

* Add control input visibility for display button
2025-08-05 09:21:05 -04:00
Matt McClaskey c1c6b48dfa
VNC-181 clear canvas on disconnect (#149)
Co-authored-by: matt <matt@kasmweb.com>
2025-07-23 15:02:14 -04:00
quickiwiki 9c78950b67
Bugfix/vnc 132 kasm vnc firefox memory leak2 (#148)
* VNC-132 Fix monitor addition bug

* Revert "VNC-132 Fix monitor addition bug"

This reverts commit 3c37ed2aeb59423becec7e039c172858fc4e56e3.

* Update secondary display message handling to use BroadcastChannel

* Fix monitors addition issue

* Refactor image decoding logic to fix multi-monitor setup
2025-07-12 05:13:42 -04:00
quickiwiki b2a6b2a2e4
VNC-132 Fix image rendering logic to decrease memory usage (#141)
* VNC-132 Fix image rendering logic to decrease memory usage

* Updating the recalculate primary display container size logic to ensure an even resolution is set

* VNC-132 Free memory after rendering bitmap image

* VNC-132 Update screen channel logic
2025-07-09 08:42:43 -04:00
rspruel ada6d16704
Fixing screen sizing issue at certain resolutions (#144)
* Updating recalculate primary display container size to ensure it is an even resolution

* updaing to get parent node size including subpixel value

* updating comment for clarity
2025-07-07 12:32:18 -04:00
Matt McClaskey bed156c565
KASM-7072 refactor of noVNC rendering of rects (#134)
KASM-7072 Added threaded decoding of rects. Update replay test to work with threaded decoding. Update stats tracker to track dropped fps.

---------

Co-authored-by: ryan.kuba <ryan.kuba@kasmweb.com>
Co-authored-by: Ryan Kuba <ryankuba@gmail.com>
Co-authored-by: Matt McClaskey <matt@kasmweb.com>
2025-05-19 05:34:54 -04:00
Matt McClaskey bbc685aa0f
KASM-5720 - Fix artifacts on secondary screens with high resolution (#104)
* increase buffer size, track drops, change pop to shift

* match rect limit elsewhere

---------

Co-authored-by: mattmcclaskey <matt@kasmweb.com>
2024-03-12 08:32:01 -04:00
Matt McClaskey 5a3b4f0d69
Bugfix/kasm 5601 display mgr changes (#97)
* KASM-5598 modify click logic to tell other windows they can receive a click event

* KASM-5598 dont run the rest of the switch on click focus set

* KASM-5598 forgot to false

* fix detection of changes of x and y of secondary screens

* always apply resize after recieving display reregister

---------

Co-authored-by: ryan.kuba <ryan.kuba@kasmweb.com>
Co-authored-by: mattmcclaskey <matt@kasmweb.com>
2024-02-08 16:05:08 -05:00
Matt McClaskey 933d5b7505
KASM-5563 limit secondary screen rect buffer size (#95)
Co-authored-by: mattmcclaskey <matt@kasmweb.com>
2024-02-01 18:23:50 -05:00
Matt McClaskey 7919f6c750
KASM-5456 null channel bugfix (#94)
* KASM-5456 fix null channel potential

* remove debugging line

---------

Co-authored-by: mattmcclaskey <matt@kasmweb.com>
2024-02-01 09:53:43 -05:00
Matt McClaskey 4c6127b47b
KASM-5523 change resize settings if admin prohibited on server (#93)
* KASM-5523 change resize settings if admin prohibited on server

* Fix local scaling aspect ratio

* fix exception on reconnect

* Always recalculate resolution on setting changes

---------

Co-authored-by: mattmcclaskey <matt@kasmweb.com>
2024-01-30 11:48:23 -05:00
Matt McClaskey 4825e12f62
Bugfix/kasm 5453 serverside fixed resolutions 2 (#90)
* fix serverside fixed resolutions

* refactor of multi-monitor screen planning

* KASM-5488 mouse up fix

* Fixed display manager not getting updates on primary scren size, static size fixes

* fix phantom screen

* fix mouse off on secondary screen when scaled

* fix scaling off

* fix exception on setting static resolution

* completely disable client set static resolution on secondary displays

---------

Co-authored-by: mattmcclaskey <matt@kasmweb.com>
Co-authored-by: Chris Hunt <chris.hunt@kasmweb.com>
2024-01-26 11:09:56 -05:00
Matt McClaskey f6c1d8c668
fix scaling on static resolutions (#87)
Co-authored-by: matt <matt@kasmweb.com>
2024-01-17 10:45:46 -05:00
Matt McClaskey d590bb931a
Bugfix/kasm 5417 watermark multi mon (#85)
* KASM-5417 fix bug watermrk multi-display
* Force the zlib expected size to an int, it was unexpectedly float
* KASM-5427 transparent rects not drawn on primary display
* add double buffer when transparent rects are used
* refactor of transparent rects
* Use a more descriptive zlib error
* account for dropped transparent rects
* fix bug with multi-monitor with overlay
2024-01-17 10:44:20 -05:00
matt 7cca8f5475 KASM-5409 unique control channel per session 2024-01-05 09:05:40 -05:00
mattmcclaskey 9fbea8cd83
requestAnimationFrame only when frames are ready 2023-11-14 09:50:47 -05:00
mattmcclaskey 66355143a9
fix secondary resize, fix small screens auto pixel ratio 2023-10-31 07:15:40 -04:00
mattmcclaskey b9f5ce3953
revert previous changes, cleanup 2023-10-26 08:20:13 -04:00
mattmcclaskey 80b9af1e32
fix scroll on primary, fix artifacting on connect, allow force draw of old frames 2023-10-23 09:21:50 -04:00
mattmcclaskey 05ddc91382
handle window moved to diffent monitor 2023-10-11 09:27:04 -04:00
mattmcclaskey 19e8e924c2
Fix native resolution on hdpi screens 2023-10-11 06:27:14 -04:00
mattmcclaskey 0f4979bcc5
several fixes 2023-10-05 13:30:37 -04:00
mattmcclaskey 70faacff85
smashed a frame dropping bug 2023-10-05 09:19:00 -04:00
mattmcclaskey 56a2e2dec9
add syncronous frames for secondary display 2023-10-05 07:51:50 -04:00
mattmcclaskey f243b54ac9
fix bugs in async frame sync 2023-10-05 06:02:33 -04:00
mattmcclaskey aef462ce62
refactor to support any number of displays in any orientation 2023-09-20 15:18:08 -04:00
mattmcclaskey 23076cdc7c
unregister a display if window closes 2023-09-20 09:06:27 -04:00
mattmcclaskey c35b8c68f3
Added support for all orientations and offsets 2023-09-20 08:17:05 -04:00
mattmcclaskey cb1bc7f787
wired up mouse, keyboard, clipboard on second display 2023-09-20 05:33:40 -04:00
mattmcclaskey 05735088b7
WIP - lots of fixes 2023-09-13 05:44:54 -04:00
mattmcclaskey 96001175a6
WIP - computer acting odd, committing code 2023-09-12 14:16:19 -04:00
mattmcclaskey 419a3a70e9
WIP - multi monitor refactor 2023-09-08 13:12:28 -04:00
Matt McClaskey d83f94c886
Transparent Rect Type (#58)
* implement new transparent rect encoding
* implement a max frame hold time
---------

Co-authored-by: Lauri Kasanen <cand@gmx.com>
Co-authored-by: mattmcclaskey <matt@kasmweb.com>
2023-03-01 11:18:59 -05:00
Matt McClaskey 437830d497
Feature/kasm 3380 udp frame (#46)
* Handle the frame id in udp packets

* refactor udp message buffer, add frame_id and rect cnt

* refactor udp to work with new display.js

* additional debug metrics, clear frame buffer on transitions tcp/udp

* fix udp with display refactor, KASM-3541 cancelAnimationFrame

Co-authored-by: Lauri Kasanen <cand@gmx.com>
Co-authored-by: mattmcclaskey <matt@kasmweb.com>
2022-11-11 09:31:16 -05:00
Matt McClaskey 9f240fc7b1
Major refactor of display class, support for QOI (#43)
* Major refactor of display.js queue to assume async rect processing in order to accommodate threaded decode or udp

* QOI lossless decoder on worker threads using WASM

* rfb.js class to provide frame_id and rect counts per frame

Co-authored-by: ryan.kuba <ryan.kuba@kasmweb.com>
Co-authored-by: matt <matt@kasmweb.com>
2022-11-02 07:01:54 -04:00
Matt McClaskey 9a95983382
KASM-3367 Refactor display.js, direct to visible canvas (#40)
* refactor display.js, remove non-visible canvas and concept of damage

* tweaks to UDP transitions

* Update testing readme

Co-authored-by: matt <matt@kasmweb.com>
Co-authored-by: matt mcclaskey <matt@kamsweb.com>
2022-10-14 15:07:57 -04:00
Matt McClaskey 5a8d8f24b4
Udp Initial MVP (#32)
* Initial UDP code

* refactored UDP reassembly

* WIP Added udp decoder

* WIP cleanup

* Port multiplexing

* UDP upgrade/downgrade

* UDP packets now have a hash

* Correct udp.js this.numColors bug

* auto upgrade to udp

* re-apply webpack

* Code cleanup, optimize clearing udpBuffer

Co-authored-by: Lauri Kasanen <cand@gmx.com>
Co-authored-by: matt <matt@kasmweb.com>
2022-07-29 12:38:55 -04:00
mmcclaskey ad1fc1f06d
KASM-2152 fps added to stats (#25)
Co-authored-by: matt <matt@kasmweb.com>
2022-01-11 15:31:39 -05:00
mmcclaskey ce2cd26277
Bugfx/kasm 2090 resizing issues (#23)
* KASM-2090 work around for incomplete webp images when there are lots of concurrent users on a single session. Unknown root cause, work around will in most cases keep the connection alive.
2021-11-15 08:19:19 -05:00
mmcclaskey e11e76e2c7
Feature/kasm 2041 mobile scaling (#20)
* KASM-2041 auto scale high res mobile - Browsers typically set a scale ratio for high resolution screens, so everything isn't tiny. This mostly works well, but results in a super low resolution for the remote display. This feature detects low resolutions where the browser is doing scaling and adjusts the scale backwards to reach a more reasonable resolution. This typically only happens on modern phones.
2021-11-08 12:55:37 -05:00
matt a0907e9390 KASM-1834 added new anti-aliasing feature 2021-09-12 17:53:03 +00:00
mmcclaskey 6b283b2313
Update display.js 2021-09-10 13:41:03 -04:00
matt 4c8e8ef1e1 KASM-1834 disable anti-aliasing when screen ratio is 1:1 2021-09-10 17:31:44 +00:00
matt a814f0594f KASM-1834 high dpi screens blurry 2021-09-09 11:34:39 +00:00
Lauri Kasanen f9f5b01cc2 Initial frame stat tracking 2021-07-27 15:28:02 +03:00
matt ed0744497d fix for video mode resizing 2021-04-18 06:36:53 -04:00
Pierre Ossman 27496941a0 Remove createImageData() fallback
All our browsers should be new enough now that we can rely on the
ImageData constructor.
2020-12-07 10:10:53 +01:00
Pierre Ossman 5b5b747494 Remove many small, obsolete, old browser hacks
These are for browsers no longer supported anyway.
2020-12-07 10:10:53 +01:00
Pierre Ossman 0630352e19 Merge branch 'rgbx' of https://github.com/CendioOssman/noVNC 2020-09-04 13:40:23 +02:00