Review of "Grid Desktop" version 5

Details Page Preview

Grid-based desktop widgets and icon management for GNOME. * Desktop icons support: place, organize, and manage files and launchers on the desktop. * Desktop widgets: clock, weather, notes, music, system monitor, clipboard, and image widgets on an aligned grid. * Local clipboard history with quick access. * Drag, resize, and customise each widget independently.

Extension Homepage
https://github.com/pelach/grid-desktop

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 manual_review 1

Shexli found 5 issues that may need reviewer attention.

EGO-A-005 manual_review

extensions should not access the clipboard directly

Direct clipboard access via `St.Clipboard.get_default()` requires reviewer scrutiny.

Review Guidelines

  • widgets/clipboard.js:100
    St.Clipboard.get_default()

EGO-X-004 warning

extensions should avoid synchronous file IO in shell code

Shell code should avoid synchronous file IO APIs like `GLib.file_get_contents()` and `Gio.File.load_contents()`.

File Operations

  • widgets/system/systemInfo.js:261
    nameFile.load_contents(null)

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

  • widgets/system/controlsSliders.js:36
            this.actor = new St.DrawingArea({
                reactive: true,
                can_focus: true,
                track_hover: true,
                x_expand: true,
                y_align: Clutter.ActorAlign.CENTER,
            })

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

  • widgets/system/controlsSliders.js:36
            this.actor = new St.DrawingArea({
                reactive: true,
                can_focus: true,
                track_hover: true,
                x_expand: true,
                y_align: Clutter.ActorAlign.CENTER,
            })

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

  • widgets/system/controlsSliders.js:46
            this.actor.connect('button-press-event', (actor, event) => {
                this._handlePointer(event);
                return Clutter.EVENT_STOP;
            })
  • widgets/system/controlsSliders.js:51
            this.actor.connect('motion-event', (actor, event) => {
                if (event.get_state() & Clutter.ModifierType.BUTTON1_MASK) {
                    this._handlePointer(event);
                    return Clutter.EVENT_STOP;
                }
                return Clutter.EVENT_PROPAGATE;
            })
  • widgets/system/controlsSliders.js:44
    this.actor.connect('repaint', (area) => this._draw(area))
  • widgets/system/controlsSliders.js:59
            this.actor.connect('scroll-event', (actor, event) => {
                const dir = event.get_scroll_direction();
                const step = 0.05;
                if (dir === Clutter.ScrollDirection.UP) {
                    this.setValue(this.value + step);
                } else if (dir === Clutter.ScrollDir

All Versions

Version Status
9 Unreviewed
8 Rejected
7 Rejected
6 Rejected
5 Unreviewed
4 Rejected
3 Rejected
2 Rejected
1 Rejected