Review of "Minimized Windows Buttons" version 12

Details Page Preview

Shows a button on the edge of the screen for each minimized window. Click to maximize again. Includes settings that let you customize it: - Position: top, bottom, left and right - Cover behaviour: front, leave space, autohide and autohide always - Button Style - Margins - Show in Overview (or not) - Per Workspace Buttons (or always show all buttons) - Drag-and-Drop behaviour Touch support: With the right settings, the extension is actually becoming quite usable on touch-only devices: - enable drag scroll hack(Settings/Misc.): use button drag movement to control container scroll, since touch scroll is not working on the button-container. - autohide global event hook(Settings/Misc.): for autohide on touch devices. its insanity, but works fine. But only use it for touch AND autohide. - Autohide: set detect container size (Settings/Cover Options). Size 1 works for nicely calibrated touch display, especially with a pen. Adjust size if that is not working for you. - enable snapback (Settings/Misc.): snap back button if dropped outside the buttoncontainer. lets not have windows open on lazy swiping.

Extension Homepage
https://github.com/CodeMonkeyIsland/minimized-windows-buttons

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) error 1 warning 2

Shexli found 3 issues that may need reviewer attention.

EGO-A-004 warning

extension files should not contain excessive ungated console logging

File contains 6 ungated console.log/warn/error calls (threshold: 5).

No excessive logging

  • lib/CoreLogic.js:158
    console.log('[Minimized Windows Buttons] WARNING: watchWindow early return!')
  • lib/CoreLogic.js:209
    console.log('[Minimized Windows Buttons] ERROR: ensureButton called on non-mapped window!')
  • lib/CoreLogic.js:239
    console.log('[Minimized Windows Buttons] WARNING: calling putButtonInPlace with placeholderIndex=-1!')
  • lib/CoreLogic.js:514
    console.log('[Minimized Windows Buttons] WARNING: placeholderButton=null, this is ok only during init!')
  • lib/CoreLogic.js:322
    console.error(e)
  • lib/CoreLogic.js:323
    console.error(e)

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:30
    this.#settingsConnector.connect()

EGO-M-004 error

metadata shell-version must only include plausible stable releases and at most one development release

Field `shell-version` contains invalid values, more than one development release, or implausible future releases.

metadata.json must be well-formed

  • metadata.json
    shell-version=['48', '49', '50', '51']

All Versions

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

Previous Reviews on this Version

CodeMonkeyIsland posted a review
- Ready for Gnome 51, tested on Fedora 45 beta. Am I too early? - Changed hooks from connect() to connectObject, much cleaner this way - i dont think, the logging is excessive. Placeholderbutton=null pops up at init, if there is other logging, there really is a problem. But should i remove as much as possible? - this.#settingsConnector.connect(): shexli doesnt like my naming, it has nothing to do with whats in that function.
JustPerfection rejected
Timeout should be removed on destroy and before creating a new one (line 191, 229, 277 `extension.js`): [EGO Review Guidelines: Timeout](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#remove-main-loop-sources)