The output of ``hyprctl submap -j`` returns a string contained within
curly braces e.g. ``{"default"}``. But this is not valid JSON as-per
RFC-7159, as an object must be a set of name/value pairs. As a result,
tools such as jq do not accept the current output. This patch is a
simple fix is to drop the braces and return the string describing the
current submap. The new JSON formatting is accepted by jq.
This would be a breaking change for anything which consumes the current
output of the submap command, but since parsers reject this (and since
the output is pretty simple to parse without using the -j flag) impact
might be more limited.
Signed-off-by: John Berg <john.berg.96bits@gmail.com>
* Be more selective about how we expand the window box here so that we're not overlapping with any neighbouring windows.
* Don't use getWindowInDirection to see if we're clear to expand the hit box. Instead, just see if our edge is close to the edge of the workspace.
* Clang-format changes
* view: consolidate group flags and apply window rules
Replace individual boolean flags with a bitmask for group policies and ensure that window-specific group rules are correctly inherited when windows are initialized or added to a group.
* tests: add cases for locked groups and invade rule
Add tests to verify window grouping behavior, specifically checking that locked groups prevent merging by default and that the 'invade' group rule correctly overrides this lock policy.
* protocols: send image-copy-capture stopped instead of destroy
Fixes a protocol error where the resource was destroyed instead of
sending stopped() to the client.
* protocols: don't send protocol errors in image-copy-capture for server errors
Simplify the compositor fullscreen state processing: use the complete
fullscreen mode value except when the effective fullscreen mode value
is needed.
Fixes#13041.
Added a guard against expired m_parent weak pointer in IModeAlgorithm::focalPointForDir
when the fullscreen monitor path is taken, and also added a null check in
CLayoutManager::moveInDirection. This seemed to have fixed a segfault triggered
by a 3-finger swipe gesture end on a fullscreen tiled window.
Guard position assignments in updateDragWindow() behind m_dragThresholdReached
to prevent windows from snapping to cursor before drag_threshold is exceeded.
Fixes: https://github.com/hyprwm/Hyprland/pull/13140