Review of "Start Overlay in Application View" version 12

Details Page Preview

When activating overview (Super button), the application view is shown instead of the view with the windows.

Extension Homepage
https://github.com/Hexcz/Start-Overlay-in-Application-View-for-Gnome-40-

No comments.

Diff Against

Files

Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.

All Versions

Version Status
13 Active
12 Rejected
11 Active
10 Inactive
9 Active
8 Active
7 Active
6 Active
5 Active
4 Inactive
3 Inactive
2 Inactive
1 Rejected

Previous Reviews on this Version

JustPerfection rejected
1. Timeout should be removed on disable and also before creating a new one (line 35 `extension.js`): [EGO Review Guidelines: Timeout](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#remove-main-loop-sources) 2. Don't wrap anything in unnecessary try and catch block. 3. `_patched` is unnecessary. Please remove that (line 12, 46, 71, 99, 106 `extension.js`).
Hex_cz posted a review
// extension.js import { Extension } from 'resource:///org/gnome/shell/extensions/extension.js'; import * as Main from 'resource:///org/gnome/shell/ui/main.js'; import * as Overview from 'resource:///org/gnome/shell/ui/overview.js'; import GLib from 'gi://GLib'; export default class StartOverlayInAppViewExtension extends Extension { constructor(metadata) { super(metadata); this._origToggle = null; this._startupHandlerId = 0; } // Small helper: only touch overview when it's *not* visible or transitioning. _safeShowApps() { const ov = Main.overview; // GNOME 46 has a stable .visible; the underscored ones are internal but useful guards. const visible = !!ov?.visible || !!ov?._visible; const busy = !!ov?._showing || !!ov?._hiding || !!ov?._animationsRunning || !!ov?._inModeChange; if (!ov) return; ov.showApps(); return GLib.SOURCE_REMOVE; } enable() { this._origToggle = Overview.Overview.prototype.toggle; Overview.Overview.prototype.toggle = function () { if (this.isDummy) return; // If already visible, hide as usual; if not, prefer Apps view. if (this._visible) { this.hide(); } else { // If another extension is also poking overview, do it on idle to avoid SHOWING→SHOWING. GLib.idle_add(GLib.PRIORITY_DEFAULT, () => { Main.overview.showApps(); return GLib.SOURCE_REMOVE; }); } } } disable() { // Restore original toggle safely. if (this._origToggle) { Overview.Overview.prototype.toggle = this._origToggle; } // Disconnect startup handler if we set it. if (this._startupHandlerId) { Main.layoutManager.disconnectObject(this); this._startupHandlerId = 0; } } }