Review of "Smart Auto Move" version 44

Details Page Preview

Smart Auto Move learns the position, size, and workspace of your application windows and restores them on subsequent launches. Supports Wayland. NOTE: Optimized for use with static workspaces. For more control, set the default behavior to IGNORE and then selectively RESTORE only desired apps.

Extension Homepage
https://github.com/khimaros/smart-auto-move

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.

EGO026 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

  • lib/dbus.js

EGO030 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

  • lib/state-session.js:369
    file.load_contents(null)

EGO016 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

  • prefs.js:368
              GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
                settings.set_string(
                  Common.SETTINGS_KEY_OVERRIDES,
                  JSON.stringify(overrides),
                );
                return GLib.SOURCE_REMOVE;
              })
  • prefs.js:399
              GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
                settings.set_string(
                  Common.SETTINGS_KEY_OVERRIDES,
                  JSON.stringify(overrides),
                );
                return GLib.SOURCE_REMOVE;
              })
  • prefs.js:484
            GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
              if (block && signalHandlers.overrides) {
                settings.block_signal_handler(signalHandlers.overrides);
              }
              settings.set_string(Common.SETTINGS_KEY_OVERRIDES, JSON.stringify(overrides));
              if (block && sig
  • prefs.js:563
        GLib.timeout_add(GLib.PRIORITY_DEFAULT, 100, () => {
          doCleanup();
          return GLib.SOURCE_REMOVE;
        })

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

  • prefs.js:94
          this._listBox.connect("row-activated", (_list, row) => {
            if (row) {
              this._emitResponse(row);
              this.close();
            }
          })
  • prefs.js:90
          this._listBox.connect("row-selected", () => {
            addButton.set_sensitive(this._listBox.get_selected_row() !== null);
          })
  • prefs.js:76
          this._searchEntry.connect("search-changed", () => {
            this._listBox.invalidate_filter();
          })
  • prefs.js:101
          addButton.connect("clicked", () => {
            const selectedRow = this._listBox.get_selected_row();
            if (selectedRow) {
              this._emitResponse(selectedRow);
            }
            this.close();
          })
  • prefs.js:109
    cancelButton.connect("clicked", () => this.close())

All Versions

Previous Reviews on this Version

khimaros auto- rejected
Auto-rejected because of new version 45 was uploaded