ItsOhen
70cdd819e4
desktop/rules: use pid for exec rules ( #13374 )
2026-02-26 18:13:49 +00:00
Vaxry
623185170b
desktop/popup: avoid crash on null popup child in rechecking
...
ref #13352
2026-02-25 23:16:16 +00:00
Skidam
457617b5a3
xwayland: normalize OR geometry to logical coords with force_zero_scaling ( #13359 )
...
Fixes X11 popups, tooltips, and menus showing black boxes on scaled monitors with xwayland:force_zero_scaling = 1 #13334
2026-02-25 12:29:12 +00:00
Tom Englund
8ab4d1dc06
popup: check for expired weak ptr ( #13352 )
...
onCommit can destroy popups while the vector CPY still holds a weak ptr
to it, check if the weak ptr is still valid
2026-02-24 11:20:29 +00:00
Skidam
ae82a55400
view: send wl_surface.enter to subsurfaces of popups ( #13353 )
2026-02-24 11:20:04 +00:00
jmanc3
bc09504ea5
desktop/popup: fix use after free in Popup ( #13335 )
...
m_alpha was freed by fullyDestroy, but was then being touched because setCallbackOnEnd is activated by tick, which is the same function that updates animating variables
---------
Co-authored-by: Vaxry <vaxry@vaxry.net>
2026-02-23 16:58:06 +00:00
Vaxry
b88813c7ef
event: refactor HookSystem into a typed event bus ( #13333 )
...
Refactors the old HookSystem into a typed event bus with clear
separation,
discovery and types.
2026-02-22 23:30:10 +00:00
Ikalco
b4ee4674f9
protocols: implement image-capture-source-v1 and image-copy-capture-v1 ( #11709 )
...
Implements the new screencopy protocols
2026-02-22 12:30:11 +00:00
Vaxry
723870337f
layout: rethonk layouts from the ground up ( #12890 )
...
Rewrites layouts to be much smaller, and deal with much less annoying
BS. Improves the overall architecture, unifies handling of pseudotiling,
and various other improvements.
2026-02-21 21:30:39 +00:00
Vaxry
9ea6d0e15f
desktop/popup: only remove reserved for window popups
2026-02-19 17:41:17 +00:00
Vaxry
68456a5d9a
desktop/window: add stable id and use it for foreign
2026-02-19 00:49:43 +00:00
ssareta
17fc159ae2
desktop/windowRule: use content rule as enum directly ( #13275 )
2026-02-16 12:15:50 +00:00
bea4dev
6716b8a0e3
xwayland: fix size mismatch for no scaling ( #13263 )
2026-02-15 17:50:03 +00:00
Vaxry
339661229d
desktop/reserved: fix a possible reserved crash ( #13207 )
2026-02-10 14:59:21 +00:00
Vaxry
cfbbfb591a
popup: reposition with reserved taken into account
...
ref https://github.com/hyprwm/Hyprland/discussions/13194
2026-02-07 11:11:45 +00:00
Szwagi
cbeb6984e7
renderer: fix mouse motion in VRR ( #12665 )
2026-01-31 13:37:01 +00:00
Florent Charpentier
22fc8136a2
desktop/windowRule: allow expression in min_size/max_size ( #12977 )
2026-01-21 15:56:51 +00:00
Naufal Hisyam Muzakki
e7985ca4c4
desktop: restore invisible floating window alpha/opacity when focused over fullscreen ( #12994 )
2026-01-21 15:55:12 +00:00
Vaxry
fec17e5e79
desktop/ruleApplicator: fix typo in border color rule parsing ( #12995 )
...
ref https://github.com/hyprwm/Hyprland/discussions/12746
2026-01-16 16:43:25 +01:00
Vaxry
0b13d398fe
desktop/window: avoid uaf on instant removal of a window
...
ref https://github.com/hyprwm/Hyprland/discussions/12999
2026-01-16 09:11:21 +01:00
Vaxry
ac9df44788
desktop/workspaceHistory: fix tracking for multiple monitors ( #12979 )
2026-01-15 17:00:47 +01:00
John Mylchreest
fa41c8229d
desktop/window: track explicit workspace assignments to prevent X11 configure overwrites ( #12850 )
...
* fix: track explicit workspace assignments to prevent X11 configure overwrites
Instead of only checking for special workspaces, track when workspaces are
explicitly assigned via window rules or user actions (movetoworkspace).
This prevents onX11ConfigureRequest from overwriting any explicit workspace
assignment based on window position.
Changes:
- Add m_workspaceExplicitlyAssigned flag to CWindow
- Set flag when window rules assign workspace
- Set flag when user moves window via dispatcher
- Check flag in onX11ConfigureRequest instead of just special workspace
- Add debug logging for explicit workspace assignments
* fix: simplify X11 configure request handling for special workspaces
X11 apps send configure requests with positions based on XWayland's
monitor layout, which could incorrectly move windows off special
workspaces.
Skip workspace reassignment when the window is on a special workspace
or staying on the same monitor, but always run z-order, fullscreen flag,
and damage logic since the configure request may include geometry changes.
2026-01-09 19:25:37 +01:00
Vaxry
3dcaadbdf5
desktop/ls: fix invalid clamp
2026-01-08 22:22:58 +01:00
Vaxry
f767782e3f
desktop/reservedArea: clamp dynamic types to 0
...
ref https://github.com/hyprwm/Hyprland/discussions/12880
2026-01-08 12:25:39 +01:00
Vaxry
f54dd4da4a
desktop/reservedArea: clamp to 0
...
ref https://github.com/hyprwm/Hyprland/discussions/12880
2026-01-08 12:24:29 +01:00
Vaxry
107275238c
desktop/ls: clamp layer from protocol
2026-01-05 18:53:29 +01:00
Vaxry
a492fa3866
desktop/window: catch bad any cast tokens
2026-01-05 18:53:29 +01:00
Vaxry
b9bd9d147f
desktop/layerRuleApplicator: fix an epic c+p fail
...
ref https://github.com/hyprwm/Hyprland/discussions/12779
2026-01-02 18:17:35 +01:00
Vaxry
31d3181e1e
dekstop/window: read static rules before guessing initial size if possible ( #12783 )
2026-01-01 21:49:57 +01:00
Vaxry
9b93d621b1
desktop/window: use workArea for idealBB ( #12802 )
2026-01-01 16:48:23 +01:00
Vaxry
48a024e032
desktop/window: remove old fn defs
2025-12-31 18:17:10 +01:00
Vaxry
bd02178e96
desktop/LS: avoid creating an invalid LS if no monitor could be found ( #12787 )
2025-12-31 18:13:42 +01:00
Vaxry
529559712b
desktop/window: go back to the previously focused window in a group ( #12763 )
2025-12-30 18:02:34 +01:00
UjinT34
6d3b17ee83
render/cm: various updates, remove old protocols ( #12693 )
...
* fix named primaries
* default to gamma22
* mark mastering primaries as supported
* remove xx-cm and frog support
* immutable primaries and image descriptions
* clang-format
2025-12-27 18:01:46 +01:00
Vaxry
42447a50d6
rules/windowRuleApplicator: fix min/max size effects ( #12491 )
...
fixes #12412
2025-12-27 12:43:45 +01:00
Vaxry
abffe75088
desktop/window: improve fullscreen handling for grouped windows
...
fixes #12700
2025-12-22 17:53:28 +01:00
Vaxry
60efbf3f63
desktop/ls: only update the ls in question for commit to change layer
2025-12-21 23:50:53 +01:00
Vaxry
b9bef69554
Desktop/history: Move history to desktop ( #12676 )
2025-12-20 22:16:13 +00:00
dylanetaft
3bbbb5aaca
core: add missing headers ( #12686 )
2025-12-20 17:52:54 +00:00
Vaxry
6175ecd4c4
debug: move to hyprutils' logger ( #12673 )
2025-12-18 17:23:24 +00:00
Lichie
18901b8e59
desktop/windowRule: force center and move rules to override each other ( #12618 )
2025-12-17 18:23:12 +00:00
Vaxry
7098558420
desktop/layer: store aboveFs property and use that
2025-12-16 16:32:37 +00:00
Vaxry
cbfdbe9fa1
desktop/popup: fix invalid surface coord
2025-12-16 15:56:04 +00:00
Vaxry
c5beecb2c3
desktop/popup: minor improvements
2025-12-16 15:18:53 +00:00
Lichie
6e09eb2e6c
desktop/windowRules: fix disabling binary window rules with override ( #12635 )
2025-12-15 22:19:13 +00:00
Maximilian Seidler
7ccc57eb7c
animation: migrate PHLANIMVAR from SP to UP ( #12486 )
2025-12-14 19:46:49 +00:00
Tom Englund
75f6435f70
window: only damage floating on clamped size change ( #12633 )
...
currently it damage the entire window if its floating and not x11 nor
fullscreen meaning damage isnt working at all for floating. im tracing
this back to a364df4 where the logic changed from damaging window only
if size was being forced to now unconditonally doing it.
change clampWindowSize to return as a bool if size changed and only
damage window if it got clamped.
2025-12-11 18:54:43 +00:00
Vaxry
5dd224805d
desktop/view: use aliveAndVisible for most things ( #12631 )
2025-12-11 16:29:26 +00:00
Vaxry
920353370b
desktop: cleanup, unify desktop elements as views ( #12563 )
2025-12-08 15:04:40 +00:00
Vaxry
9264436f35
desktop: rewrite reserved area handling + improve tests ( #12383 )
2025-12-05 14:16:22 +00:00