Commit Graph
7348 Commits
Author SHA1 Message Date
Vaxry e2ebdcf59a desktop/window: allow focus while held to non-OR X11 windows (#14821)
the drag bug only happens on OR windows, so we should just skip those. Regular toplevels should be focusable.
2026-06-07 12:26:02 +02:00
Vaxry 8bc3925eee config/propRefresher: schedule frames on screen shader refresh (#14874) 2026-06-07 12:26:02 +02:00
Vaxry fc8c353598 core: fix a few fd leaks (#14870)
* core: fix a few fd leaks

ref #14839

* core: fix a few fd leaks

ref #14839
2026-06-07 12:26:02 +02:00
Vaxry f898323082 protocols: bump xdg-decoration to rev 2 (#14869) 2026-06-07 12:26:02 +02:00
Awused 2580e8aa0e desktop/window: fix wrong scale being applied after workspace rules (#14832) 2026-06-07 12:26:02 +02:00
BENDIand0xdeadcode-arch 3ef4e0dc4d binds/submap: fix submap enter bind == bind inside submap (#14856)
* Only process submap bindings if its the same on press

Move the check below the pattern match and check if the key was pressed

Address comment: Remove {}

Remove the new submap check and replace the old one

* tests/keybinds: add additional submap testcase

This tests for cases where the keybind to enter the submap is also bound inside it

---------

Co-authored-by: 0xdeadcode-arch <code.akshat.thukral@gmail.com>
2026-06-07 12:26:02 +02:00
Tom Englund b9e7d097a2 desktop/popup: fix reposition artifacts (#14820)
visible() m_alpha check was reversed, m_lastPos cant be set in
onReposition() and then later used in onCommit() it means its can be
ahead of time and use wrong cords. also expand the damage box by 4 like
done elsewhere.
2026-06-07 12:26:02 +02:00
Tom Englund d15b64e92a renderer: send frame callbacks on presented if no change (#14849)
some very picky clients like firefox expects a frame callback to
continue rendering and send buffers, if the frame is returning early
because no change its not going to recieve it, this becomes very
noticeable on a single firefox window and using new_render_scheduling
where it renders the monitor one extra time where occasionally nothing
had really changed.
2026-06-07 12:26:02 +02:00
umbrageodotus b2632eb4ce xwayland: fix ICCCM synthetic event comparison (#14827) 2026-06-07 12:26:02 +02:00
Awused 55b136e390 protocols/fractional-scale: track if scale is known and send scales eagerly when known (#14798) 2026-06-07 12:26:02 +02:00
ImperishableSecret acf0972147 screencopy: fix screenshare copyfb pending frames (#14837)
* screenshare: only copy fb for pending frames

* render: track stale mirror framebuffer damage
2026-06-07 12:26:02 +02:00
Ahmed Kallel 91b45de657 input: aggregate modifier states from all keyboards on focus enter (#14633)
* fix: aggregate modifier states from all keyboards on focus enter

* hyprtester: add keyboard modifier merging e2e test

* nix: install keyboard-modifiers client binary for tests
2026-06-07 12:26:02 +02:00
Mint a5acafacd8 layout/scrolling: check if cursor overlaps with target in focusOnInput (#14687)
* layout/scrolling: check if cursor overlaps with target in focusOnInput

* test
2026-06-07 12:26:01 +02:00
samsyu518 5b6729c9ab compositor: fix monitor re-enabling on hotplug when dpms is off (#14818) 2026-06-07 12:25:33 +02:00
Awused 44317d084b layersurface: inform layer surfaces of scale changes (#14771)
* layersurface: inform layer surfaces of scale changes

* monitor: move surface scale and transform updates into their own method

* layersurface: ensure layer subsurfaces have scales set on map/commit
2026-06-07 12:24:08 +02:00
Ivo Šmerek 52bd8c48ba config: fix VRR not applying on runtime change (#14744)
* config/values: refresh monitor states on misc:vrr change

`misc:vrr` was missing a `.refresh` annotation, so `refreshBits()` returned 0 and runtime changes via the Lua `hl.set` path never triggered a monitor refresh — the value updated but VRR wasn't applied until a config reload.

Tag the option with `REFRESH_MONITOR_STATES`, which the Lua dynamic-set path schedules (`LuaBindingsConfigRules.cpp`), tripping `PropRefresher` -> `monitorRuleMgr()->ensureVRR()`.

* config/monitor: call ensureVRR after performMonitorReload

`performMonitorReload` swaps `m_activeMonitorRule` via `applyMonitorRule`, but never re-runs `ensureVRR()` for the now-current rule. The PropRefresher does call `ensureVRR()`, but earlier — before `applyMonitorRule` has updated `m_activeMonitorRule.m_vrr` — so it reads the previous setting and the monitor stays on the old VRR mode.

Call `ensureVRR()` after the reload loop completes, matching the contract documented in `CMonitor::applyMonitorRule` ("will be tested in CConfigManager::ensureVRR()").

* clang-format fix

Signed-off-by: BlueManCZ <ivo97@centrum.cz>

---------

Signed-off-by: BlueManCZ <ivo97@centrum.cz>
2026-06-07 12:24:08 +02:00
Vaxry 0bed0d4265 algo/master: guard target in remove (#14756) 2026-06-07 12:24:08 +02:00
UjinT34 17ca8e63ff compositor: fix render unfocused for subsurfaces (#14718) 2026-06-07 12:24:08 +02:00
Vaxry 14cb67b8ba keybinds: store hit binds first, then execute callbacks (#14743)
lua can invalidate the m_keybinds vec in callbacks
2026-06-07 12:24:08 +02:00
Vaxry 7087fe2b03 config/lua: report errors better without check* (#14695) 2026-06-07 12:24:08 +02:00
neonetizen 5ecd8393a2 internal: fix null deref in setWindowFullscreenInternal when fullscreen state stale (#14725) 2026-06-07 12:24:08 +02:00
David Ehnert 71bb405589 config/monitor: refresh splash texture on monitor reload (#14632) 2026-06-07 12:24:08 +02:00
fazzi 308bac5df0 renderer: minor shader fixes (#14584)
* renderer: correctly transpose BT2020toLMS and its inverse

* renderer: fix blur and fade out in HDR
2026-06-07 12:24:08 +02:00
Christopher Kaster e68def5824 meta/lua: add missing notification text field and make timeout required (#14665) 2026-06-07 12:24:08 +02:00
Ivo Šmerek f88569b1a2 config: fix decoration values to refresh on runtime eval/keyword change (#14590)
* config: fix decoration values to refresh on runtime eval/keyword change

Signed-off-by: BlueManCZ <ivo97@centrum.cz>

* config: fix border colors to refresh on runtime eval/keyword change

Signed-off-by: BlueManCZ <ivo97@centrum.cz>

* call damageMonitor in REFRESH_WINDOW_STATES

Signed-off-by: BlueManCZ <ivo97@centrum.cz>

---------

Signed-off-by: BlueManCZ <ivo97@centrum.cz>
2026-06-07 12:24:08 +02:00
Tom Englund 7cb54c91e6 texture: cache G and A swizzle channels aswell (#14605)
add caching for G and A channels aswell.
2026-06-07 12:24:08 +02:00
Nikolai Nechaev 103604996e meta/lua: Gestures can accept a lua function (#14649) 2026-06-07 12:24:08 +02:00
Vaxry acdad4ed38 keybinds: set a fallback releasePending flag for special lua binds (#14600)
fixes #14445
2026-06-07 12:24:08 +02:00
Vaxry c11104377e decoration/glow: fix visibility when no decorate is set (#14602)
fixes #14585
2026-06-07 12:24:08 +02:00
Vaxry 39d7e209c7 version: bump to 0.55.2 v0.55.2 2026-05-16 13:59:19 +01:00
floresce d165363c53 layout/WindowTarget: fix crash when toggling float on oversized windows (#14587)
Related to my issue https://github.com/hyprwm/Hyprland/discussions/14537#discussion-10063053
2026-05-16 13:59:10 +01:00
UjinT34 1f8086ad92 renderer: fix border cm for mirroring (#14574) 2026-05-16 13:59:10 +01:00
Vaxry 850f30ccca config/values: default no_hardware_cursors to 2 (#14575) 2026-05-16 13:59:10 +01:00
Anthony Green fd5450615d protocols/grab: fix refocus to unreachable windows (#14555) 2026-05-16 13:59:10 +01:00
Vaxry d57751358d config/lua: use ref for workspace destroy events (#14562)
in destroy the SP is already lost
2026-05-16 13:59:10 +01:00
enzi 60d6e61f1f xwayland: lock focus while dragging an xwayland window (#12051)
* menu bar dropdown hover wasn't opening other entries with hover

* fixes 2 bugs for Jetbrains IDEs
- tab reordering
- detaching a tab to a new window

* helper function for `isX11Popup`

* moved logic to Windows.cpp
added helper to get private `m_currentlyHeldButtons`

* latest merge

* latest merge

* latest merge

* demorgan flip of logic

* removed code that slipped in from other branch

* revert unintended submodule pointer bumps
2026-05-16 13:59:10 +01:00
darkwater 70f32e7e82 config/lua: revert "restrict package module loading to lua-only modules (#14526)" (#14533)
This reverts commit 8643d5b718.
2026-05-16 13:59:10 +01:00
vaxerski a47147bc09 [gha] Nix: update inputs v0.55.1 2026-05-13 22:55:46 +00:00
Vaxry 6ad5e7082e version: bump to 0.55.1 2026-05-13 23:54:19 +01:00
Kai Ratzeburg 0f396ddcd7 config/lua: restrict package module loading to lua-only modules (#14526) 2026-05-13 23:54:07 +01:00
Vaxry fe3fa4af23 input: properly make input-blocked windows inaccessible (#14517)
* input: properly make input-blocked windows inaccessible

* FUCKER FYUCXDDDDDDDDDDDDDDDDDD
2026-05-13 23:54:07 +01:00
Vaxry 8000241949 algo/floating: do not alter pinned windows' state on ws move (#14513)
fixes #14457
2026-05-13 23:54:07 +01:00
Zerby 452ef12c51 monitor: fix top-layer bar visibility on workspace change with scrolling-layout fullscreen (#14425)
* monitor: fix top-layer bar visibility on workspace change with scrolling-layout fullscreen

* desktop/workspace: add hasFullscreen helper
2026-05-13 23:54:07 +01:00
André Silva 9e0ca2affa groups: sync window monitor/workspace when added to a group (#14478) 2026-05-13 23:54:07 +01:00
Vaxry 2495313e40 render/gl/framebuffer: fix swizzle comparisons (#14481)
ref #14375
2026-05-13 23:54:07 +01:00
Kai Ratzeburg 92f8e98a8f pointer: fix cursor bounds not updating on monitor layout changes (#14393) 2026-05-13 23:54:07 +01:00
fazzi 049e5ab9ab monitor: don't set back to 8 bit when applying rules (#14404) 2026-05-13 23:54:07 +01:00
Vaxry bad6466485 meta/lua-stubs: overwrite scale to accept float and int (#14461) 2026-05-13 23:54:07 +01:00
bizmyth 6a3a8dc1e1 config/lua: allow re-enabling monitors (#14447) 2026-05-13 23:54:07 +01:00
Vaxry 09240e8031 config/propRefresher: avoid crash if event loop manager isn't loaded (#14423)
ref #14414
2026-05-13 23:54:07 +01:00