Review of "Force Quit" version 43

Details Page Preview

Adds a force quit button. Click the toolbar button, then choose the window you want to force quit. On accidental click, right click anywhere or press [Esc] to abort the kill.

Extension Homepage
https://github.com/meghprkh/force-quit/

No comments.

Diff Against

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.

EGO015 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:68
            this._settings.connect('changed::button-position', () => {
                this.disable();
                this.enable();
            })
  • selection.js:81
                this._signalCapturedEvent = this._areaSelection.connect(
                    'captured-event',
                    this._onCaptureEvent.bind(this)
                )

EGO033 warning

preferences classes should not retain window-scoped objects on instance fields without close-request cleanup

Preferences code stores window-scoped objects on the exported prefs class without `close-request` cleanup.

Destroy all objects

  • prefs.js:9
    this.settings = this.getSettings()
  • prefs.js:23
            this.switchRow = new Adw.SwitchRow({
                title: 'Hide Status Bar Button',
                subtitle: 'Hide the Force Quit button from the top panel',
            })
  • prefs.js:43
    this.toggleGroup = new Adw.ToggleGroup({ 'can-shrink': true })
  • prefs.js:59
            this.description = new Gtk.Label({
                label: `
    With the button hidden, the extension can still be launched from scripts via DBus:
    <tt>
     gdbus call \\
       --session \\
       --dest org.gnome.Shell \\
       --object-path /org/gnome/Shell/Extensions/ForceQuit \\
       --method org.gnome.Shell.Ex

EGO014 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

  • selection.js:69
            this._areaResolution = new St.Label({
                style_class: 'area-resolution',
                text: '',
            })
  • selection.js:58
            this._areaSelection = new St.Widget({
                name: 'area-selection',
                style_class: 'area-selection',
                visible: 'true',
                reactive: 'true',
                x: -10,
                y: -10,
            })

EGO027 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

  • selection.js:69
            this._areaResolution = new St.Label({
                style_class: 'area-resolution',
                text: '',
            })
  • selection.js:58
            this._areaSelection = new St.Widget({
                name: 'area-selection',
                style_class: 'area-selection',
                visible: 'true',
                reactive: 'true',
                x: -10,
                y: -10,
            })

All Versions

Previous Reviews on this Version

megh auto- rejected
Auto-rejected because of new version 44 was uploaded