- Drop minRatio parameter from container.adjustBoundary; guard is now
newLeft/newRight <= 0 (i.e. only prevent a pane from inverting)
- Remove _getMinRatio() helper and all call sites in windowManager.ts
- Remove Window Sizing preferences group and min-window-size-percent
spin button from prefs.ts
- Remove min-window-size-percent GSettings key from schema XML
- 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)