From 8d68bdaaa163a79d40eb57b52aaa1b401a6500a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= Date: Wed, 7 Sep 2022 20:23:38 +0200 Subject: [PATCH] js: Queue 'later' via MetaLaters This replaces the meta_later_add() API which used now removed global singletons under the hood. Part-of: --- js/gdm/authList.js | 3 ++- js/gdm/loginDialog.js | 3 ++- js/ui/appMenu.js | 9 ++++++--- js/ui/audioDeviceSelection.js | 3 ++- js/ui/dash.js | 6 ++++-- js/ui/dialog.js | 6 ++++-- js/ui/iconGrid.js | 6 ++++-- js/ui/layout.js | 8 +++++--- js/ui/lookingGlass.js | 3 ++- js/ui/main.js | 3 ++- js/ui/quickSettings.js | 3 ++- js/ui/screenShield.js | 3 ++- js/ui/search.js | 9 ++++++--- js/ui/status/system.js | 3 ++- js/ui/windowManager.js | 7 +++++-- js/ui/windowPreview.js | 6 ++++-- js/ui/workspaceThumbnail.js | 15 ++++++++++----- js/ui/workspacesView.js | 3 ++- 18 files changed, 66 insertions(+), 33 deletions(-) diff --git a/js/gdm/authList.js b/js/gdm/authList.js index fb223a972..618cbe2d2 100644 --- a/js/gdm/authList.js +++ b/js/gdm/authList.js @@ -112,7 +112,8 @@ var AuthList = GObject.registerClass({ let focusSet = this.navigate_focus(null, St.DirectionType.TAB_FORWARD, false); if (!focusSet) { - Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => { + const laters = global.compositor.get_laters(); + laters.add(Meta.LaterType.BEFORE_REDRAW, () => { this._moveFocusToItems(); return false; }); diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js index 607193677..ad66a0489 100644 --- a/js/gdm/loginDialog.js +++ b/js/gdm/loginDialog.js @@ -191,7 +191,8 @@ var UserList = GObject.registerClass({ let focusSet = this.navigate_focus(null, St.DirectionType.TAB_FORWARD, false); if (!focusSet) { - Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => { + const laters = global.compositor.get_laters(); + laters.add(Meta.LaterType.BEFORE_REDRAW, () => { this._moveFocusToItems(); return false; }); diff --git a/js/ui/appMenu.js b/js/ui/appMenu.js index bdf874798..fec74cf45 100644 --- a/js/ui/appMenu.js +++ b/js/ui/appMenu.js @@ -249,7 +249,8 @@ var AppMenu = class AppMenu extends PopupMenu.PopupMenu { if (this._updateWindowsLaterId) return; - this._updateWindowsLaterId = Meta.later_add( + const laters = global.compositor.get_laters(); + this._updateWindowsLaterId = laters.add( Meta.LaterType.BEFORE_REDRAW, () => { this._updateWindowsSection(); return GLib.SOURCE_REMOVE; @@ -257,8 +258,10 @@ var AppMenu = class AppMenu extends PopupMenu.PopupMenu { } _updateWindowsSection() { - if (this._updateWindowsLaterId) - Meta.later_remove(this._updateWindowsLaterId); + if (this._updateWindowsLaterId) { + const laters = global.compositor.get_laters(); + laters.remove(this._updateWindowsLaterId); + } this._updateWindowsLaterId = 0; this._windowSection.removeAll(); diff --git a/js/ui/audioDeviceSelection.js b/js/ui/audioDeviceSelection.js index e284772e6..b5ce8cbc2 100644 --- a/js/ui/audioDeviceSelection.js +++ b/js/ui/audioDeviceSelection.js @@ -95,7 +95,8 @@ var AudioDeviceSelectionDialog = GObject.registerClass({ vertical: true, }); box.connect('notify::height', () => { - Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => { + const laters = global.compositor.get_laters(); + laters.add(Meta.LaterType.BEFORE_REDRAW, () => { box.width = box.height; return GLib.SOURCE_REMOVE; }); diff --git a/js/ui/dash.js b/js/ui/dash.js index a40377cf7..d546ee255 100644 --- a/js/ui/dash.js +++ b/js/ui/dash.js @@ -265,7 +265,8 @@ class ShowAppsIcon extends DashItemContainer { let id = app.get_id(); - Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => { + const laters = global.compositor.get_laters(); + laters.add(Meta.LaterType.BEFORE_REDRAW, () => { AppFavorites.getAppFavorites().removeFavorite(id); return false; }); @@ -967,7 +968,8 @@ var Dash = GObject.registerClass({ if (!this._dragPlaceholder) return true; - Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => { + const laters = global.compositor.get_laters(); + laters.add(Meta.LaterType.BEFORE_REDRAW, () => { let appFavorites = AppFavorites.getAppFavorites(); if (srcIsFavorite) appFavorites.moveFavoriteToPos(id, favPos); diff --git a/js/ui/dialog.js b/js/ui/dialog.js index 414a3e4c7..22e6a1b6e 100644 --- a/js/ui/dialog.js +++ b/js/ui/dialog.js @@ -188,7 +188,8 @@ var MessageDialogContent = GObject.registerClass({ _onDestroy() { if (this._updateTitleStyleLater) { - Meta.later_remove(this._updateTitleStyleLater); + const laters = global.compositor.get_laters(); + laters.remove(this._updateTitleStyleLater); delete this._updateTitleStyleLater; } } @@ -212,7 +213,8 @@ var MessageDialogContent = GObject.registerClass({ if (this._updateTitleStyleLater) return; - this._updateTitleStyleLater = Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => { + const laters = global.compositor.get_laters(); + this._updateTitleStyleLater = laters.add(Meta.LaterType.BEFORE_REDRAW, () => { this._updateTitleStyleLater = 0; this._title.add_style_class_name('lightweight'); return GLib.SOURCE_REMOVE; diff --git a/js/ui/iconGrid.js b/js/ui/iconGrid.js index ac8d3ecaa..4e83b56ef 100644 --- a/js/ui/iconGrid.js +++ b/js/ui/iconGrid.js @@ -677,7 +677,8 @@ var IconGridLayout = GObject.registerClass({ _onDestroy() { if (this._updateIconSizesLaterId >= 0) { - Meta.later_remove(this._updateIconSizesLaterId); + const laters = global.compositor.get_laters(); + laters.remove(this._updateIconSizesLaterId); this._updateIconSizesLaterId = 0; } } @@ -962,8 +963,9 @@ var IconGridLayout = GObject.registerClass({ this._pageSizeChanged = true; if (this._updateIconSizesLaterId === 0) { + const laters = global.compositor.get_laters(); this._updateIconSizesLaterId = - Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => { + laters.add(Meta.LaterType.BEFORE_REDRAW, () => { const iconSize = this._findBestIconSize(); if (this._iconSize !== iconSize) { diff --git a/js/ui/layout.js b/js/ui/layout.js index 6be7cd041..b6c8f4f58 100644 --- a/js/ui/layout.js +++ b/js/ui/layout.js @@ -982,8 +982,9 @@ var LayoutManager = GObject.registerClass({ _queueUpdateRegions() { if (!this._updateRegionIdle) { - this._updateRegionIdle = Meta.later_add(Meta.LaterType.BEFORE_REDRAW, - this._updateRegions.bind(this)); + const laters = global.compositor.get_laters(); + this._updateRegionIdle = laters.add( + Meta.LaterType.BEFORE_REDRAW, this._updateRegions.bind(this)); } } @@ -1006,7 +1007,8 @@ var LayoutManager = GObject.registerClass({ _updateRegions() { if (this._updateRegionIdle) { - Meta.later_remove(this._updateRegionIdle); + const laters = global.compositor.get_laters(); + laters.remove(this._updateRegionIdle); delete this._updateRegionIdle; } diff --git a/js/ui/lookingGlass.js b/js/ui/lookingGlass.js index e903cc7dc..93cb88862 100644 --- a/js/ui/lookingGlass.js +++ b/js/ui/lookingGlass.js @@ -1558,7 +1558,8 @@ class LookingGlass extends St.BoxLayout { } _queueResize() { - Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => { + const laters = global.compositor.get_laters(); + laters.add(Meta.LaterType.BEFORE_REDRAW, () => { this._resize(); return GLib.SOURCE_REMOVE; }); diff --git a/js/ui/main.js b/js/ui/main.js index ad9470bf8..9710e335e 100644 --- a/js/ui/main.js +++ b/js/ui/main.js @@ -814,7 +814,8 @@ function _runBeforeRedrawQueue() { function _queueBeforeRedraw(workId) { _beforeRedrawQueue.push(workId); if (_beforeRedrawQueue.length == 1) { - Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => { + const laters = global.compositor.get_laters(); + laters.add(Meta.LaterType.BEFORE_REDRAW, () => { _runBeforeRedrawQueue(); return false; }); diff --git a/js/ui/quickSettings.js b/js/ui/quickSettings.js index f35a15c3d..214ca4901 100644 --- a/js/ui/quickSettings.js +++ b/js/ui/quickSettings.js @@ -626,7 +626,8 @@ var QuickSettingsMenu = class extends PopupMenu.PopupMenu { // Pick up additional spacing from any intermediate actors const updateOffset = () => { - Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => { + const laters = global.compositor.get_laters(); + laters.add(Meta.LaterType.BEFORE_REDRAW, () => { const offset = this._grid.apply_relative_transform_to_point( this._boxPointer, new Graphene.Point3D()); yConstraint.offset = offset.y; diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js index 325fbff53..2cae2732f 100644 --- a/js/ui/screenShield.js +++ b/js/ui/screenShield.js @@ -678,7 +678,8 @@ var ScreenShield = class extends Signals.EventEmitter { let wasLocked = global.get_runtime_state('b', LOCKED_STATE_STR); if (wasLocked === null) return; - Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => { + const laters = global.compositor.get_laters(); + laters.add(Meta.LaterType.BEFORE_REDRAW, () => { this.lock(false); return GLib.SOURCE_REMOVE; }); diff --git a/js/ui/search.js b/js/ui/search.js index 71870a039..8f96973bf 100644 --- a/js/ui/search.js +++ b/js/ui/search.js @@ -470,7 +470,8 @@ class GridSearchResults extends SearchResultsBase { _onDestroy() { if (this._updateSearchLater) { - Meta.later_remove(this._updateSearchLater); + const laters = global.compositor.get_laters(); + laters.remove(this._updateSearchLater); delete this._updateSearchLater; } @@ -481,7 +482,8 @@ class GridSearchResults extends SearchResultsBase { if (this._notifyAllocationId) this.disconnect(this._notifyAllocationId); if (this._updateSearchLater) { - Meta.later_remove(this._updateSearchLater); + const laters = global.compositor.get_laters(); + laters.remove(this._updateSearchLater); delete this._updateSearchLater; } @@ -490,7 +492,8 @@ class GridSearchResults extends SearchResultsBase { this._notifyAllocationId = this.connect('notify::allocation', () => { if (this._updateSearchLater) return; - this._updateSearchLater = Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => { + const laters = global.compositor.get_laters(); + this._updateSearchLater = laters.add(Meta.LaterType.BEFORE_REDRAW, () => { delete this._updateSearchLater; super.updateSearch(...args); return GLib.SOURCE_REMOVE; diff --git a/js/ui/status/system.js b/js/ui/status/system.js index 5a2d92cc0..538901d3a 100644 --- a/js/ui/status/system.js +++ b/js/ui/status/system.js @@ -107,7 +107,8 @@ class ScreenshotItem extends QuickSettingsItem { this.connect('clicked', () => { const topMenu = Main.panel.statusArea.quickSettings.menu; - Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => { + const laters = global.compositor.get_laters(); + laters.add(Meta.LaterType.BEFORE_REDRAW, () => { Main.screenshotUI.open().catch(logError); return GLib.SOURCE_REMOVE; }); diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js index 4a2fa1e0c..c0a1dca07 100644 --- a/js/ui/windowManager.js +++ b/js/ui/windowManager.js @@ -327,8 +327,11 @@ var WorkspaceTracker = class { } _queueCheckWorkspaces() { - if (this._checkWorkspacesId == 0) - this._checkWorkspacesId = Meta.later_add(Meta.LaterType.BEFORE_REDRAW, this._checkWorkspaces.bind(this)); + if (this._checkWorkspacesId === 0) { + const laters = global.compositor.get_laters(); + this._checkWorkspacesId = + laters.add(Meta.LaterType.BEFORE_REDRAW, this._checkWorkspaces.bind(this)); + } } _nWorkspacesChanged() { diff --git a/js/ui/windowPreview.js b/js/ui/windowPreview.js index e7e1ed92b..9f4c9d2de 100644 --- a/js/ui/windowPreview.js +++ b/js/ui/windowPreview.js @@ -527,7 +527,8 @@ var WindowPreview = GObject.registerClass({ this._delegate = null; if (this._longPressLater) { - Meta.later_remove(this._longPressLater); + const laters = global.compositor.get_laters(); + laters.remove(this._longPressLater); delete this._longPressLater; } @@ -615,7 +616,8 @@ var WindowPreview = GObject.registerClass({ // A click cancels a long-press before any click handler is // run - make sure to not start a drag in that case - this._longPressLater = Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => { + const laters = global.compositor.get_laters(); + this._longPressLater = laters.add(Meta.LaterType.BEFORE_REDRAW, () => { delete this._longPressLater; if (this._selected) { this._selected = false; diff --git a/js/ui/workspaceThumbnail.js b/js/ui/workspaceThumbnail.js index 45b938f7b..a1e2583ea 100644 --- a/js/ui/workspaceThumbnail.js +++ b/js/ui/workspaceThumbnail.js @@ -1187,13 +1187,16 @@ var ThumbnailsBox = GObject.registerClass({ if (this._updateStateId > 0) return; - this._updateStateId = Meta.later_add( + const laters = global.compositor.get_laters(); + this._updateStateId = laters.add( Meta.LaterType.BEFORE_REDRAW, () => this._updateStates()); } _unqueueUpdateStates() { - if (this._updateStateId) - Meta.later_remove(this._updateStateId); + if (this._updateStateId) { + const laters = global.compositor.get_laters(); + laters.remove(this._updateStateId); + } this._updateStateId = 0; } @@ -1329,7 +1332,8 @@ var ThumbnailsBox = GObject.registerClass({ this._dropPlaceholder.allocate_preferred_size( ...this._dropPlaceholder.get_position()); - Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => { + const laters = global.compositor.get_laters(); + laters.add(Meta.LaterType.BEFORE_REDRAW, () => { this._dropPlaceholder.hide(); }); } @@ -1359,7 +1363,8 @@ var ThumbnailsBox = GObject.registerClass({ this._dropPlaceholder.allocate(childBox); - Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => { + const laters = global.compositor.get_laters(); + laters.add(Meta.LaterType.BEFORE_REDRAW, () => { this._dropPlaceholder.show(); }); x += placeholderWidth + spacing; diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js index 511847250..930b720b3 100644 --- a/js/ui/workspacesView.js +++ b/js/ui/workspacesView.js @@ -860,7 +860,8 @@ class WorkspacesDisplay extends St.Widget { _onDestroy() { if (this._parentSetLater) { - Meta.later_remove(this._parentSetLater); + const laters = global.compositor.get_laters(); + laters.remove(this._parentSetLater); this._parentSetLater = 0; } }