diff --git a/app/ui.js b/app/ui.js index 766736ae..d0061ea0 100644 --- a/app/ui.js +++ b/app/ui.js @@ -163,6 +163,7 @@ const UI = { UI.initSetting('resize', 'off'); UI.initSetting('shared', true); UI.initSetting('view_only', false); + UI.initSetting('img_bgrx_mode', false); UI.initSetting('show_dot', false); UI.initSetting('path', 'websockify'); UI.initSetting('repeaterID', ''); @@ -352,6 +353,8 @@ const UI = { UI.addSettingChangeHandler('shared'); UI.addSettingChangeHandler('view_only'); UI.addSettingChangeHandler('view_only', UI.updateViewOnly); + UI.addSettingChangeHandler('img_bgrx_mode'); + UI.addSettingChangeHandler('img_bgrx_mode', UI.applyBGRXMode); UI.addSettingChangeHandler('show_dot'); UI.addSettingChangeHandler('show_dot', UI.updateShowDotCursor); UI.addSettingChangeHandler('host'); @@ -1251,6 +1254,19 @@ const UI = { UI.rfb.resizeSession = UI.getSetting('resize') === 'remote'; }, +/* ------^------- + * /img_bgrx_mode + * ============== + * BGRX mode + * ------v------*/ + + // Apply bgrx transform to images + applyBGRXMode() { + if (!UI.rfb) return; + + UI.rfb.bgrxImgMode = UI.getSetting('img_bgrx_mode'); + }, + /* ------^------- * /RESIZE * ============== diff --git a/core/rfb.js b/core/rfb.js index e3e3a0f7..49a16bb6 100644 --- a/core/rfb.js +++ b/core/rfb.js @@ -282,6 +282,9 @@ export default class RFB extends EventTargetMixin { this._updateClip(); } + get bgrxImgMode() { return this._display.bgrxImgMode; } + set bgrxImgMode(val) { this._display.bgrxImgMode = val; } + get scaleViewport() { return this._scaleViewport; } set scaleViewport(scale) { this._scaleViewport = scale; diff --git a/vnc.html b/vnc.html index ef7150c8..46b32e73 100644 --- a/vnc.html +++ b/vnc.html @@ -195,6 +195,9 @@