From 01b465beae325c88fe6539303ddbdf1cc1cb80a7 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Wed, 16 Aug 2023 18:46:54 -0400 Subject: [PATCH 1/3] status/keyboard: Add a catch around reload call Now that system input settings can get used in the user session they're getting seen by the tests and the tests are complaining: Unhandled promise rejection. To suppress this warning, add an error handler to your promise chain with .catch() or a try-catch block around your await expression. This commit adds the catch it's asking for. --- js/ui/status/keyboard.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js index 8d98e16de..7277c6d09 100644 --- a/js/ui/status/keyboard.js +++ b/js/ui/status/keyboard.js @@ -171,61 +171,63 @@ class InputSourceSettings extends Signals.EventEmitter { get mruSources() { return []; } set mruSources(sourcesList) { // do nothing } get keyboardOptions() { return []; } get perWindow() { return false; } } class InputSourceSystemSettings extends InputSourceSettings { constructor() { super(); this._BUS_NAME = 'org.freedesktop.locale1'; this._BUS_PATH = '/org/freedesktop/locale1'; this._BUS_IFACE = 'org.freedesktop.locale1'; this._BUS_PROPS_IFACE = 'org.freedesktop.DBus.Properties'; this._layouts = ''; this._variants = ''; this._options = ''; - this._reload(); + this._reload().catch(error => { + logError(error, 'Could not reload system input settings'); + }); Gio.DBus.system.signal_subscribe(this._BUS_NAME, this._BUS_PROPS_IFACE, 'PropertiesChanged', this._BUS_PATH, null, Gio.DBusSignalFlags.NONE, this._reload.bind(this)); } async _reload() { let props; try { const result = await Gio.DBus.system.call( this._BUS_NAME, this._BUS_PATH, this._BUS_PROPS_IFACE, 'GetAll', new GLib.Variant('(s)', [this._BUS_IFACE]), null, Gio.DBusCallFlags.NONE, -1, null); [props] = result.deepUnpack(); } catch (e) { log(`Could not get properties from ${this._BUS_NAME}`); return; } const layouts = props['X11Layout'].unpack(); const variants = props['X11Variant'].unpack(); const options = props['X11Options'].unpack(); -- 2.41.0.rc2