Review of "Virtual Monitors" version 1

Details Page Preview

Subdivide physical displays into virtual monitor regions. Fullscreen apps confine to their region.

Extension Homepage
https://github.com/localyost3000/virtual-monitors

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 1

Shexli found 1 issue that may need reviewer attention.

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:1132
          GLib.timeout_add(GLib.PRIORITY_DEFAULT, 1000, () => {
            if (this._unmaking === w) {
              this._unmaking = null
            }
            return GLib.SOURCE_REMOVE
          })
  • extension.js:1158
            GLib.timeout_add(GLib.PRIORITY_DEFAULT, ms, () => {
              if (!this._fakeFs?.has(w)) {
                return GLib.SOURCE_REMOVE
              }
              const rr = this._fsRectsFor(w.get_monitor(), this._wsOf(w))[this._posOf(w)]
              w.move_resize_frame(true, rr.x, rr.y, rr.width, rr.heig
  • extension.js:121
          GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
            if (!this._winSignals?.has(w)) {
              return GLib.SOURCE_REMOVE
            }
            this._assignByCenter(w)
            // filled windows re-fill in new region; floating stay put
            if (this._regionMaxed.has(w)) {
              this._applyRe
  • extension.js:243
        GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
          if (!this._winSignals.has(w)) {
            return GLib.SOURCE_REMOVE
          }
          this._assignByCenter(w)
          // skip fullscreen-at-map windows: fs path owns them (games
          // self-configure on map; resizing them here starts a war).
          // 
  • extension.js:643
        GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
          if (!this._winSignals?.has(w)) {
            return GLib.SOURCE_REMOVE
          }
          if (this._regionMaxed.has(w)) {
            this._applyRegion(w)
          } else {
            const r = this._fsRectsFor(w.get_monitor(), this._wsOf(w))[this._posOf(w)]
         
  • extension.js:677
        GLib.timeout_add(GLib.PRIORITY_DEFAULT, 2500, () => {
          if (this._overlays?.get(monitor) === group) {
            group.destroy()
            this._overlays.delete(monitor)
          }
          return GLib.SOURCE_REMOVE
        })
  • extension.js:696
          GLib.timeout_add(GLib.PRIORITY_DEFAULT, 1000, () => {
            if (this._unmaxing === w) {
              this._unmaxing = null
            }
            return GLib.SOURCE_REMOVE
          })
  • extension.js:705
            GLib.timeout_add(GLib.PRIORITY_DEFAULT, ms, () => {
              if (!this._regionMaxed?.has(w) || w.is_maximized()) {
                return GLib.SOURCE_REMOVE
              }
              const rr = this._tileRectsFor(w.get_monitor(), this._wsOf(w))[this._posOf(w)]
              w.move_resize_frame(true, rr
  • extension.js:752
        GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
          this._retiling = false
          if (!this._winSignals?.has(w)) {
            return GLib.SOURCE_REMOVE
          }
          if (w === this._unmaxing) {
            return GLib.SOURCE_REMOVE
          } // our own unmaximize echo
          if (this._regionMaxed.delete(w))

All Versions

Version Status
4 Unreviewed
3 Rejected
2 Rejected
1 Rejected

Previous Reviews on this Version

localyost3000 auto- rejected
Auto-rejected because of new version 2 was uploaded