From 05e4e36ddbf108906bd781458fdfbfe710605590 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Sun, 20 Oct 2024 13:21:51 -0700 Subject: [PATCH] Fix enable/disable shortcut so that widescreen gets disabled with the effect --- gnome/src/extension.js | 18 +++++++++--------- gnome/src/time.js | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/gnome/src/extension.js b/gnome/src/extension.js index 7074ceb..c8b390d 100644 --- a/gnome/src/extension.js +++ b/gnome/src/extension.js @@ -173,11 +173,13 @@ export default class BreezyDesktopExtension extends Extension { return !needs_sbs_mode_switch && !this._monitor_manager.needsOptimalModeCheck(target_monitor.connector); } - _setup() { + // for_disable should be true if we're using this function to disable the + // effect without anticipating an immediate re-enable + _setup(for_disable = false) { Globals.logger.log_debug('BreezyDesktopExtension _setup'); if (this._is_effect_running) { Globals.logger.log('Reset triggered, disabling XR effect'); - this._effect_disable(true); + this._effect_disable(!for_disable); } const target_monitor = this._find_supported_monitor(); @@ -213,9 +215,7 @@ export default class BreezyDesktopExtension extends Extension { if (Globals.ipc_file.query_exists(null)) { const file_info = Globals.ipc_file.query_info(Gio.FILE_ATTRIBUTE_TIME_MODIFIED, Gio.FileQueryInfoFlags.NONE, null); const file_modified_time = file_info.get_attribute_uint64(Gio.FILE_ATTRIBUTE_TIME_MODIFIED); - - // when the driver is running, the IMU file is updated at least 60x per second, do a strict check - return isValidKeepAlive(file_modified_time, true); + return isValidKeepAlive(file_modified_time); } } catch (e) { Globals.logger.log(`ERROR: BreezyDesktopExtension _check_driver_running ${e.message}\n${e.stack}`); @@ -460,13 +460,13 @@ export default class BreezyDesktopExtension extends Extension { } _handle_supported_device_change(effect, _pspec) { - const value = effect.supported_device_detected; - Globals.logger.log_debug(`BreezyDesktopExtension _handle_supported_device_change ${value}`); + const device_connected = effect.supported_device_detected; + Globals.logger.log_debug(`BreezyDesktopExtension _handle_supported_device_change ${device_connected}`); // this will disable the effect and begin polling for a ready state again - if (!value && this._is_effect_running) { + if (!device_connected && this._is_effect_running) { Globals.logger.log('Supported device disconnected'); - this._setup(); + this._setup(true); } } diff --git a/gnome/src/time.js b/gnome/src/time.js index 7883b9b..017994a 100644 --- a/gnome/src/time.js +++ b/gnome/src/time.js @@ -6,6 +6,6 @@ export function toSec(milliseconds) { return Math.floor(milliseconds / 1000); } -export function isValidKeepAlive(dateSec, strictCheck = false) { - return Math.abs(toSec(Date.now()) - dateSec) <= (strictCheck ? 1 : 5); +export function isValidKeepAlive(dateSec) { + return Math.abs(toSec(Date.now()) - dateSec) <= 1; } \ No newline at end of file