Review of "Window List NG" version 51.0 (1)

Details Page Preview

Display a window list at the bottom of the screen. Optional features: - Window List itself - Bottom Overview: overview appears when hovering the bottom of any monitor - Panel Free: hide top panel except in overview - Light Style: switch default to light style Based on Window List and Light Style (official GNOME extensions, @fmuellner) and on the Bottom Overview and Panel Free extensions (@fthx). These extensions were written by hand, tested by hand, then hardened and integrated with the help of Claude Code.

Extension Homepage
https://github.com/fthx/window-list-ng

No comments.

FAQ

Files

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

Shexli (experimental) warning 4

Shexli found 4 issues that may need reviewer attention.

EGO-P-006 warning

unnecessary build and translation artifacts should not be shipped

Compiled GSettings schemas should not be shipped for 45+ packages.

Don't include unnecessary files

  • schemas/gschemas.compiled
    schemas/gschemas.compiled

EGO-L-002 warning

objects created by extension should be destroyed in disable()

Objects assigned in `enable()` are missing matching `.destroy()` calls in `disable()` or its helper methods.

Destroy all objects

  • extension.js:351
            this._button = new St.Button({
                style_class: 'window-button',
                can_focus: true,
                x_expand: true,
                button_mask: St.ButtonMask.PRIMARY | St.ButtonMask.SECONDARY,
            })
  • extension.js:384
    this._contextMenuManager = new PopupMenu.PopupMenuManager(this)
  • extension.js:649
    this._menu = new ButtonMenu(this)
  • extension.js:648
    this._menuManager = new PopupMenu.PopupMenuManager(this)

EGO-L-005 warning

owned object references should be released in disable()

Owned references that are cleaned up in `disable()` should also be released with `null` or `undefined`.

Destroy all objects

  • extension.js:351
            this._button = new St.Button({
                style_class: 'window-button',
                can_focus: true,
                x_expand: true,
                button_mask: St.ButtonMask.PRIMARY | St.ButtonMask.SECONDARY,
            })
  • extension.js:384
    this._contextMenuManager = new PopupMenu.PopupMenuManager(this)
  • extension.js:649
    this._menu = new ButtonMenu(this)
  • extension.js:648
    this._menuManager = new PopupMenu.PopupMenuManager(this)
  • extension.js:655
    this._windowTracker = Shell.WindowTracker.get_default()
  • extension.js:1451
    this._settings = extension.getSettings()

EGO-L-003 warning

signals connected by extension should be disconnected in disable()

Signals assigned in `enable()` are missing matching disconnect calls in `disable()` or its helper methods.

Disconnect all signals

  • extension.js:372
    this._button.connect('clicked', this._onClicked.bind(this))
  • extension.js:359
            this._button.connect('notify::hover', () => {
                if (this._button.hover)
                    this.showLabel();
                else
                    this.hideLabel();
            })
  • extension.js:374
    this._button.connect('popup-menu', () => this._onPopupMenu())
  • extension.js:404
    this._draggable.connect('drag-begin', () => this.emit('drag-begin'))
  • extension.js:405
            this._draggable.connect('drag-cancelled', () => {
                this._draggable._dragActor?.setTargetWidth(this.width);
                this.emit('drag-end');
            })
  • extension.js:409
    this._draggable.connect('drag-end', () => this.emit('drag-end'))
  • extension.js:650
    this._menu.connect('activate', this._onMenuActivate.bind(this))
  • workspaceIndicator.js:450
            this._entry.clutter_text.connect('activate',
                () => this._stopEditing())

All Versions

Version Status
51.3 (6) Active
51.2 (5) Rejected
51.2 (4) Rejected
51.1 (3) Rejected
51.0 (2) Rejected
51.0 (1) Rejected

Previous Reviews on this Version

fthx auto- rejected
Auto-rejected because of new version 51.0 (2) was uploaded