Review of "Dash2Dock Motion" version 1

Details Page Preview

Dock with cosine-window icon magnification, a translucent glass slab and configurable rise.

Extension Homepage
https://github.com/Unmade760/dash2dock-motion

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 10

Shexli found 10 issues that may need reviewer attention.

EGO-X-006 warning

extensions should not use lookupByURL or lookupByUUID for current extension access

Use `this`, `this.getSettings()` or `this.path` instead of `lookupByURL()` or `lookupByUUID()` for the current extension.

`extensionUtils`

  • desktopIconsIntegration.js:76
    Extension.lookupByURL(import.meta.url)

EGO-I-004 warning

extensions should not use imports._gi directly

Direct use of `imports._gi` is discouraged in extensions.

InjectionManager

  • utils.js:407
    Gi.gobject_prototype_symbol
  • utils.js:408
    Gi.gobject_prototype_symbol
  • utils.js:410
    Gi.hook_up_vfunc_symbol

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-P-007 warning

JavaScript files should be reachable from extension.js or prefs.js

Some JavaScript files are not reachable from `extension.js` or `prefs.js` imports.

Don't include unnecessary files

  • locationsWorker.js

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

  • docking.js:296
    this.staticBox = new Clutter.ActorBox()

EGO-L-001 warning

extension must not create GObject instances or modify shell before enable()

Resource creation or signal/source setup was found outside `enable()`.

Only use initialization for static resources

  • appIcons.js:50
    tracker = Shell.WindowTracker.get_default()

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

  • appIconIndicators.js:292
            this._area = new IndicatorDrawingArea({
                x_expand: true,
                y_expand: true,
            })
  • docking.js:296
    this.staticBox = new Clutter.ActorBox()

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

  • appIcons.js:1112
    source.connect('destroy', () => this.destroy())
  • docking.js:1073
                this._pressureBarrier.connect('trigger', _barrier => {
                    if (!settings.autohideInFullscreen && this._monitor.inFullscreen)
                        return;
                    this._onPressureSensed();
                })
  • docking.js:1499
                    Main.wm._workspaceSwitcherPopup.connect('destroy', actor => {
                        if (Main.wm._workspaceSwitcherPopup === actor)
                            delete Main.wm._workspaceSwitcherPopup;
                    })

EGO-L-004 warning

main loop sources should be removed in disable()

Main loop sources assigned in `enable()` are missing matching removals in `disable()` or its helper methods.

Remove main loop sources

  • docking.js:1475
                        this._optionalScrollWorkspaceSwitchDeadTimeId = GLib.timeout_add(
                            GLib.PRIORITY_DEFAULT, 250, () => {
                                this._optionalScrollWorkspaceSwitchDeadTimeId = 0;
                            })

EGO-C45-001 warning

45+ preferences should use fillPreferencesWindow instead of getPreferencesWidget

45+ preferences code should use `fillPreferencesWindow()` instead of `getPreferencesWidget()`.

Preferences

  • prefs.js:1275
        getPreferencesWidget() {
            const settings = new DockSettings(this);
            const {widget} = settings;
            return widget;
        }

All Versions

Version Status
1 Unreviewed