Review of "Compact Launcher" version 2

Details Page Preview

Compact popup launcher for GNOME Shell like MacOS


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 3

Shexli found 3 issues that may need reviewer attention.

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:226
            this._gridBox = new St.Widget({
                style_class: 'compact-launcher-grid',
                layout_manager: this._gridLayout,
                x_expand: true,
            })
  • extension.js:221
            this._gridLayout = new Clutter.GridLayout({
                orientation: Clutter.Orientation.HORIZONTAL,
                column_spacing: this._settings.get_int('col-spacing'),
                row_spacing:    this._settings.get_int('row-spacing'),
            })
  • extension.js:233
            this._gridViewport = new St.BoxLayout({
                vertical: true,
                x_expand: true,
            })
  • extension.js:212
            this._scrollView = new St.ScrollView({
                style_class: 'compact-launcher-scroll',
                enable_mouse_scrolling: true,
                hscrollbar_policy: St.PolicyType.NEVER,
                vscrollbar_policy: St.PolicyType.AUTOMATIC,
            })

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:226
            this._gridBox = new St.Widget({
                style_class: 'compact-launcher-grid',
                layout_manager: this._gridLayout,
                x_expand: true,
            })
  • extension.js:221
            this._gridLayout = new Clutter.GridLayout({
                orientation: Clutter.Orientation.HORIZONTAL,
                column_spacing: this._settings.get_int('col-spacing'),
                row_spacing:    this._settings.get_int('row-spacing'),
            })
  • extension.js:233
            this._gridViewport = new St.BoxLayout({
                vertical: true,
                x_expand: true,
            })
  • extension.js:189
            this._overlay = new St.Widget({
                reactive: false,
                style_class: 'compact-launcher-overlay',
            })
  • extension.js:200
            this._popup = new St.BoxLayout({
                style_class: 'popup-menu-content compact-launcher',
                vertical: true,
                reactive: true,
                track_hover: true,
                pivot_point: new Graphene.Point({x: 0.5, y: 0.5}),
                // width set dynamically in open(
  • extension.js:212
            this._scrollView = new St.ScrollView({
                style_class: 'compact-launcher-scroll',
                enable_mouse_scrolling: true,
                hscrollbar_policy: St.PolicyType.NEVER,
                vscrollbar_policy: St.PolicyType.AUTOMATIC,
            })
  • extension.js:578
            this._button = new St.Button({
                style_class: 'panel-button compact-launcher-panel-btn',
                reactive: true,
                can_focus: true,
                track_hover: true,
                child: new St.Icon({
                    icon_name: 'view-app-grid-symbolic',
                    sty

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:193
            this._overlay.connect('button-press-event', () => {
                this.close();
                return Clutter.EVENT_STOP;
            })
  • extension.js:209
    this._popup.connect('button-press-event', () => Clutter.EVENT_STOP)
  • extension.js:285
                    icon.connect('button-press-event', (_a, ev) => {
                        if (ev.get_button() === 1) {
                            this._launchApp(info);
                            return Clutter.EVENT_STOP;
                        }
                        return Clutter.EVENT_PROPAGATE;
                  
  • extension.js:292
    icon.connect('key-focus-in', () => { this._focusIndex = i; })
  • extension.js:588
    this._button.connect('clicked', () => this._launcher.toggle())

All Versions

Version Status
3 Unreviewed
2 Rejected
1 Rejected

Previous Reviews on this Version

Gilson Fonsaca auto- rejected
Auto-rejected because of new version 3 was uploaded