diff --git a/core/rfb.js b/core/rfb.js index c61facf3..7c05d68d 100644 --- a/core/rfb.js +++ b/core/rfb.js @@ -233,6 +233,14 @@ export default class RFB extends EventTargetMixin { // Cursor this._cursor = new Cursor(); + this._showLocalCursor = false; + this._localCursors = { + dragging: null, + drag: null, + viewOnly: null, + default: null, + empty: null, + }; // XXX: TightVNC 2.8.11 sends no cursor at all until Windows changes // it. Result: no cursor at all until a window border or an edit field @@ -375,6 +383,24 @@ export default class RFB extends EventTargetMixin { this._refreshCursor(); } + get showLocalCursor() { return this._showLocalCursor; } + set showLocalCursor(cursors) { + cursors ??= false; + this._showLocalCursor = !!cursors; + const { + default: defaultCursor, + viewOnly: viewOnlyCursor, + drag: dragCursor, + dragging: draggingCursor, + empty: emptyCursor, + } = cursors; + defaultCursor && (this._localCursors.default = defaultCursor); + viewOnlyCursor && (this._localCursors.viewOnly = viewOnlyCursor); + dragCursor && (this._localCursors.drag = dragCursor); + draggingCursor && (this._localCursors.dragging = draggingCursor); + emptyCursor && (this._localCursors.empty = emptyCursor); + } + get background() { return this._screen.style.background; } set background(cssValue) { this._screen.style.background = cssValue; }