GNOME Extensions Store Compliance Release
This release addresses all findings raised by the automated store review tool (shexli) during submission, ensuring full compliance with GNOME Extensions quality standards across all four extension variants.
🐛 Bug Fixes & Compliance
- Fixed GNOME 49 API Compatibility in Modern Version: The Meta.Window.get_maximized() and unmaximize(Meta.MaximizeFlags) APIs were removed in GNOME Shell 49. The maximize/unmaximize logic now uses duck-typing via optional chaining (is_maximized?.()) and bracket notation for the GNOME ≤ 48 fallback path, making the code version-agnostic without relying on a hard-coded version number check.
- Released Owned GObject References in disable(): InteractionHandler now sets _wmSettings and _settings to null at the end of disable(). Tiler does the same for its settings reference. This satisfies the owned-reference cleanup requirement and prevents stale D-Bus connections from persisting after the extension is disabled.
- Removed Untracked GLib.idle_add Source in _centerWindow(): The nested GLib.idle_add call used to invoke win.make_above() was not registered for cleanup in disable(). It has been removed; make_above() is now called directly within the existing tracked timeout_add callback.
🛠️ Build System
- gschemas.compiled Excluded from Modern AppStore ZIP: The compiled GSettings schema is no longer packaged in build-appstore-modern output. GNOME Shell 45+ handles schema compilation automatically and the store rejects packages that ship the compiled artifact.