Commit graph

7013 commits

Author SHA1 Message Date
Barrett Ruth
7dbd3e9d05
layout: guard null workspace in CWindowTarget::updatePos() (#13861) 2026-03-27 18:17:17 +00:00
91d87ec875
overridableVar: fix reassignment
we don't want to remove already set props with our reassignmemnt
2026-03-27 18:17:17 +00:00
John Berg
609b0da983
hyprctl: fix json output for the submap command (#13726)
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>
2026-03-27 18:16:55 +00:00
Sniffy Gumbles
fec5ff333e
compositor: be more selective about how we expand the window box in getting coord (#13720)
* 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
2026-03-27 18:16:55 +00:00
Visal Vijay
aaea8547d6
xwayland: prevent potential buffer overflow in socket path handling (#13797) 2026-03-27 18:16:55 +00:00
Blue
a61633a365
layersurface: simulate mouse movement on layer change (#13747) 2026-03-27 18:16:54 +00:00
UjinT34
02446f5079
layershell: fix popup crash with nullptr mon (#13763) 2026-03-27 18:16:22 +00:00
67d178083e
algo/master: fix crash on null target in getNextTarget 2026-03-27 18:15:16 +00:00
0fe2297915
protocols/workspace: schedule done after output update (#13743) 2026-03-27 18:15:16 +00:00
Kon
b6ada0c1dd
view: consolidate group flags and apply window rules (#13694)
* 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.
2026-03-27 18:15:16 +00:00
ItsOhen
b7285a301e
desktop/rules: fix static rules and content type. (#13725)
Hopefully for the last time in a while. Also a lot easier to add in new
static types with the recheck done in window map instead of the rule.
2026-03-27 18:15:16 +00:00
Nathan Ollerenshaw
6463290eb2
algo/scroll: fix std::clamp assertion crash on resume from suspend (#13737) 2026-03-27 18:15:16 +00:00
a2b9947704
protocols: fix image-copy-capture stop handling and remove non protocol errors (#13706)
* 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
2026-03-27 18:15:16 +00:00
Bastien Souchu
0cb69c1039
algo/dwindle: fix precise mouse setting (#13678) 2026-03-27 18:15:16 +00:00
Nikolai Nechaev
e8b06b832c
compositor: When processing fullscreen states, only use effective mode where necessary (#13607)
Simplify the compositor fullscreen state processing: use the complete
fullscreen mode value except when the effective fullscreen mode value
is needed.

Fixes #13041.
2026-03-27 18:15:16 +00:00
59f9f2688a
version: bump to 0.54.2 2026-03-10 13:26:58 +00:00
matjam
e3bce4c0af
protocols/sessionLock: fix crash when monitor is gone during lock surface creation
Move monitor signal listener registration inside the existing null guard, and validate output resource and monitor in onGetLockSurface.
2026-03-10 13:26:58 +00:00
matjam
48ac5b323a
layout: fix crash on monitor reconnect due to stale workspace state
Guard against null/expired workspace and monitor pointers during layout recalculation triggered by arrangeMonitors after sleep/wake.
2026-03-10 13:26:58 +00:00
James Bingen
470997f751
layout: fix null deref in focalPointForDir and moveInDirection (#13652)
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.
2026-03-10 13:26:58 +00:00
Nikolai Nechaev
7c4a23af59
algo/dwindle: Respect force_split when moving windows to workspaces (#13038)
Respect `dwindle:force_split` not only when mapping new windows,
but also when moving windows to workspaces.

Fixes #13009.
2026-03-10 13:26:55 +00:00
Vaxry
d05b805cff
algo/dwindle: do NOT use smart_split for overridden focal point (#13635)
ref #13594
2026-03-10 13:24:40 +00:00
Mihail Costea
ad4f5f15f3
layout: fix drag_threshold window snap regression (rebased for #12890) (#13140)
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
2026-03-10 13:24:40 +00:00
895c49a22b
layout/windowTarget: add visualBox (#13626)
Allows layouts to explicitly define the visual geometry of a tiled
window.
2026-03-10 13:24:40 +00:00
Vaxry
a32a1a8da3
desktop/windowRule: fix matching CONTENT (#13636)
ref #13596
2026-03-10 13:24:40 +00:00
Yujon Pradhananga
932d676ca8
algo/scroll: fix unsigned wrap (#13634) 2026-03-10 13:24:40 +00:00
Vaxry
9cdd5e8337
layout/groupTarget: fix crash on null space assignment (#13614)
nullchecks my life
2026-03-10 13:24:40 +00:00
cc19f2ee8a
deco/border: fix damage region 2026-03-10 13:24:40 +00:00
Logan Collins
fadd8e9420
compositor: fix missing recheckWorkArea to prevent CReservedArea assert failure (#13590) 2026-03-10 13:24:40 +00:00
JaSha256
af6416b972
pointer: fix hardware cursor rendering on rotated/flipped monitors (#13574)
Replace the broken cairo_matrix_rotate() approach with explicit
per-transform pattern matrices for all 8 wl_output_transform values.
2026-03-10 13:24:40 +00:00
justin4046
9286abb8cd
desktop/rules: fix empty workspace handling (#13544) 2026-03-10 13:24:40 +00:00
c7fadefcac
config/descriptions: add missing desc entry 2026-03-10 13:24:40 +00:00
Ikalco
942f4e8845
screenshare: improve destroy logic of objects (#13554) 2026-03-10 13:24:39 +00:00
Ikalco
4e43a3358d
screencopy: fix minor crash (#13566) 2026-03-10 13:24:29 +00:00
Florian "sp1rit
628cc608d2
core: fix i586 build (#13550)
Signed-off-by: Florian "sp1rit"​ <sp1rit@disroot.org>
2026-03-10 13:24:29 +00:00
vaxerski
4b07770b9e [gha] Nix: update inputs 2026-03-03 21:06:41 +00:00
8940e596df
version: bump to 0.54.1 2026-03-03 21:04:54 +00:00
a9d10d01f9
desktop/window: don't group modals 2026-03-03 21:04:37 +00:00
c0fbf3342b
algo/scrolling: fix rare crash 2026-03-03 21:04:37 +00:00
André Silva
58017aa140
desktop/window: fix floating windows being auto-grouped (#13475)
---------

Co-authored-by: Aqa-Ib <16420574+Aqa-Ib@users.noreply.github.com>
2026-03-03 21:04:37 +00:00
Vaxry
c275d9efce
hyprctl: fix workspace dynamic effect reloading (#13537)
ref https://github.com/hyprwm/Hyprland/discussions/12806
2026-03-03 21:04:37 +00:00
Vaxry
c4266033b8
layout/windowTarget: override maximized box status in updateGeom (#13535)
ref https://github.com/hyprwm/Hyprland/discussions/13525
2026-03-03 21:04:37 +00:00
Vaxry
e26465817b
algo/dwindle: don't crash on empty swapsplit (#13533)
ref https://github.com/hyprwm/Hyprland/discussions/13530
2026-03-03 21:04:37 +00:00
51b220abbb
tests/workspace: fix one test case failing 2026-03-03 21:04:37 +00:00
Vaxry
9803deeeeb
renderer: fix crash on mirrored outputs needing recalc (#13534)
ref https://github.com/hyprwm/Hyprland/discussions/13517
2026-03-03 21:04:37 +00:00
UjinT34
f8a47e05c4
algo/master: fix crash after dpms (#13522) 2026-03-03 21:04:37 +00:00
Vaxry
81873930dc
layout/algos: use binds:window_direction_monitor_fallback for moves (#13508)
ref https://github.com/hyprwm/Hyprland/discussions/13473
2026-03-03 21:04:37 +00:00
Vaxry
bd4aad8518
algo/scrolling: fix offset on removeTarget (#13515) 2026-03-03 21:04:37 +00:00
André Silva
d2f63278bd
desktop/group: respect direction when moving window out of group (#13490) 2026-03-03 21:04:37 +00:00
Vaxry
918602a053
algo/dwindle: use focal point correctly for x-ws moves (#13514) 2026-03-03 21:04:37 +00:00
Vaxry
6817446ce6
algo/scroll: improve directional moves (#13423) 2026-03-03 21:04:37 +00:00