Review of "Unity Buttons and Title" version 11

Details Page Preview

Unity-style close & restore buttons in the top panel with smart window centering. Features: • Unmaximized windows are centered and optionally resized • Original window size is remembered and restored • Live title tracking (Nautilus, browsers…) • XWayland support (Spotify, Electron apps) • Optional minimum open size for new windows • LibreOffice headerbar fix • Crash-safe button-layout backup/restore

Extension Homepage
https://github.com/Lokoyote/unity-buttons-extension

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.

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

  • extension.js:959
    this._cache.load_contents(null)
  • extension.js:978
    file.load_contents(null)

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-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:692
    this._settings       = this.getSettings()
  • extension.js:693
    this._wmSettings     = new Gio.Settings({ schema_id: 'org.gnome.desktop.wm.preferences' })

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

  • extension.js:936
                    GLib.idle_add(GLib.PRIORITY_DEFAULT_IDLE, () => {
                        if (!win || win.get_maximized()) return GLib.SOURCE_REMOVE;
                        _safe(() => {
                            const r = win.get_frame_rect();
                            win.move_resize_frame(true, r.x, r.y, r.
  • extension.js:446
                        GLib.idle_add(GLib.PRIORITY_DEFAULT_IDLE, () => {
                            if (!win || win.get_maximized()) return GLib.SOURCE_REMOVE;
                            _safe(() => {
                                const r = win.get_frame_rect();
                                win.move_resize_fram
  • extension.js:603
    GLib.idle_add(GLib.PRIORITY_HIGH, () => { poll(); return GLib.SOURCE_REMOVE; })

All Versions

Version Status
12 Active
11 Active
10 Active
9 Active
8 Rejected
7 Rejected
6 Active
5 Rejected
4 Rejected
3 Rejected
2 Rejected
1 Rejected

Previous Reviews on this Version

fmuellner active
Same, would be good to address those warnings