Commit Graph

12 Commits

Author SHA1 Message Date
Lucas Oskorep
7083482d5c fix: min-window-size setting now read live from Gio.Settings on every boundary adjust
Previously _minRatio was baked into WindowContainer at construction time
and never updated. Now adjustBoundary() takes minRatio as a parameter,
WindowManager._getMinRatio() reads it from Gio.Settings on every call,
and the settings reference is injected from extension.ts on enable().
2026-02-24 17:46:20 -05:00
Lucas Oskorep
20bac71b45 feat: percentage-based container sizing with live boundary resize
- Add _splitRatios[] to WindowContainer — each child owns a fraction of
  the parent that always sums to 1.0; bounds are computed via prefix-sum
  so the last item absorbs rounding remainder (no pixel gaps)
- addWindow/removeWindow reset to equal splits; itemDragged swaps only
  items (ratios stay slot-based) so windows take the size of the slot
  they move into
- Add adjustBoundary() for live edge-drag resizing clamped to a
  configurable minimum (default 10%, schema key min-window-size-percent)
- Add reset-ratios keybinding (Ctrl+Z) that resets the active container
  to equal splits via WindowManager.resetActiveContainerRatios()
- Connect size-changed signal alongside position-changed so east/south
  edge drags (width-only changes) are detected and the adjacent window
  is repositioned live
- Replace LIFO pop() event queue with name-keyed Map so duplicate events
  collapse to the latest callback and timers never fight each other
- Remove redundant move_frame() before move_resize_frame(); fix retry
  condition to use symmetric pixel tolerance
- Add _isTiling re-entrancy guard around all tileWindows() call sites
  so compositor position-changed callbacks cannot recurse
- Remove double tileWindows() call in monitor.tileWindows() (move()
  already calls it internally)
2026-02-24 17:26:27 -05:00
Lucas Oskorep
7773c3b808 feat: update code to work with new libs
Some checks failed
Build and Test / build (pull_request) Failing after 24s
Build and Test / release (pull_request) Has been cancelled
2026-01-29 02:41:59 -05:00
Lucas Oskorep
5a6c3ccd72 Finish adding debugging command and ability to swap the orientation of a container 2025-10-17 01:25:47 -04:00
Lucas Oskorep
c977c61714 adding debug command 2025-10-17 01:09:13 -04:00
Lucas Oskorep
5e9bc796ea feat: enable the window manager to be able to drag across monitors and support keybindings propperly in the extension settings 2025-05-20 01:20:48 -04:00
Lucas Oskorep
04f402c686 feat: upgrade packages and set parent for windows on add 2025-05-19 21:43:09 -04:00
Lucas Oskorep
717c240d70 feat: fixed display signal handling on disable 2025-05-02 01:31:46 -04:00
Lucas Oskorep
e1e240924a feat: first draft of everything working single monitor with just mouse commands 2025-04-18 01:57:29 -04:00
Lucas Oskorep
185a8e233c feat: adding in demo settings page for gnome extensions 2025-04-05 23:55:46 -04:00
Lucas Oskorep
fe4558d628 feat: update gschema 2025-04-03 02:27:55 -04:00
Lucas Oskorep
c8a453f329 feat: adding initial source code 2025-04-03 02:24:40 -04:00