From c1c6b48dfa97d1b16e24d9746ac2508429008f12 Mon Sep 17 00:00:00 2001 From: Matt McClaskey Date: Wed, 23 Jul 2025 15:02:14 -0400 Subject: [PATCH] VNC-181 clear canvas on disconnect (#149) Co-authored-by: matt --- core/display.js | 5 ++++- core/rfb.js | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/core/display.js b/core/display.js index fa2ab017..c635caf3 100644 --- a/core/display.js +++ b/core/display.js @@ -663,7 +663,7 @@ export default class Display { * This must be called when switching between transit modes tcp/udp */ clear() { - this._clearAsyncQueue(); + this._clearAsyncQueue(); } /* @@ -672,6 +672,9 @@ export default class Display { dispose() { clearInterval(this._frameStatsInterval); this.clear(); + if (this._targetCtx && this._target) { + this._targetCtx.clearRect(0,0, this._target.width, this._target.height); + } } fillRect(x, y, width, height, color, frame_id, fromQueue) { diff --git a/core/rfb.js b/core/rfb.js index 6727b5c2..9109fa81 100644 --- a/core/rfb.js +++ b/core/rfb.js @@ -1743,12 +1743,12 @@ export default class RFB extends EventTargetMixin { break; case 'disconnecting': + this._proxyRFBMessage('secondarydisconnected'); this._disconnect(); this._disconnTimer = setTimeout(() => { Log.Error("Disconnection timed out."); this._updateConnectionState('disconnected'); - this._proxyRFBMessage('secondarydisconnected') }, DISCONNECT_TIMEOUT * 1000); break;