Commit graph

1737 commits

Author SHA1 Message Date
Vaxry
5b6c42ca70
dynamicPermManager: fix c+p fail 2026-02-10 15:13:25 +00:00
UjinT34
ff061d177e
protocols: commit and presentation timing fixes (#13174)
* move commit timing fields to surface state

* fix toTimespec init

* update sendQueued api

* update onPresented api

* set zero copy flag

* send clock id

* move presented calcs inside condition

* use only CLOCK_MONOTONIC for commit/presentation timings

* fix setSetTimestamp

* do not wait for commit timing while tearing

* proto config

* fix config defaults
2026-02-10 14:55:21 +00:00
bea4dev
171ad7d338
input: fix kinetic scroll (#13233) 2026-02-10 14:51:51 +00:00
Aurelle
6507445787
layershell: restore focus to layer shell surface after popup is destroyed (#13225) 2026-02-09 12:51:25 +00:00
UjinT34
9f9dbb0dc5
renderer: allow tearing with DS with invisible cursors (#13155) 2026-02-07 12:38:01 +00:00
EvilLary
8606bc255b
proto/shm: update wl_shm to v2 (#13187) 2026-02-06 17:08:30 +00:00
Łukasz Rek
30756d8718
gestures/fs: remove unneeded floating state switch (#13127) 2026-02-03 00:49:05 +00:00
Luke Barkess
d9d9d9358f
gestures: add cursor zoom (#13033) 2026-02-01 14:32:47 +00:00
Szwagi
cbeb6984e7
renderer: fix mouse motion in VRR (#12665) 2026-01-31 13:37:01 +00:00
Tom Englund
21325f9385
eventLoop: various eventloopmgr fixes (#13091)
* eventloopmgr: use unordered_map for readableWaiters

use an unordered_map with the raw ptr as key, avoids any risk of
dangling ptrs.

* eventloopmgr: read the timerfd fd

the manpage for timerfd_create and read states this.

timefd_create creates a new timer object, and returns a file descriptor
that can be used to read the number of expirations that have occurred.

The FD becomes readable when the timer expires.

read removes the “readable” state from the FD.

so most likely it has somewhat worked because of the scheduleRecalc()
function.

* eventloopmgr: avoid unneeded std::function copy

move the idle functions instead of copying.

* eventloopmgr: remove event source before calling fn

if fn causes a dispatch/reentry its gonna cause UB inside libwayland
itself, remove the event source before calling the fn() avoids that
entirerly. even if a new dispatch occurs.

* eventloopmgr: check if timer fd is readable

check if timerfd is readable before calling read on it, so we dont end
up blocking on an accident, log an error if its not readable.

* eventloopmgr: revert unordered_map change

my mistake, the address wasnt changing on reallocations of the heap
object. the only issue i was triggering was the reentry path in fn()
2026-01-27 12:11:54 +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
William Wernert
f9fb24577a
animation: reset tick state on session activation (#13024)
After suspend/wake, the animation tick timer state (m_lastTickValid,
m_tickScheduled) could be stale, causing framerate drops when blur is
enabled. This was introduced in 2b0fd417 which changed the animation
tick timing mechanism.

Reset the tick state when the session becomes active to ensure a clean
state for the animation system.
2026-01-21 15:54:02 +00:00
Tom Englund
0896775f1b
pointermgr: remove onRenderBufferDestroy (#13008)
set the damage to cursor plane size instead of INT16_MAX and remove
onRenderbufferDestroy, renderbuffer already have a listener that
destroys when buffer is destroyed.
2026-01-18 13:51:14 +01:00
Tom Englund
92a3b91999
anr: remove window on closewindow (#13007)
m_data was never cleaned and continously built up the m_data, remove
the entry on closeWindow.
2026-01-17 10:23:09 +01:00
Vaxry
eff484b96c
core: optimize some common branches 2026-01-16 16:40:48 +01:00
Vaxry
eb623bd91d
animationMgr: avoid uaf in ::tick() if handleUpdate destroys AV
ref https://github.com/hyprwm/Hyprland/discussions/12840
2026-01-08 22:22:58 +01:00
EvilLary
cbfbd9712a
anr: open anr dialog on parent's workspace (#12509) 2026-01-06 14:29:17 +01:00
Vaxry
8eb3ecc755 input/TI: avoid UAF in destroy 2026-01-05 18:53:29 +01:00
Vaxry
97c8a2f1cf protocolMgr: remove IME / virtual input protocols from sandbox whitelist 2026-01-05 18:53:29 +01:00
Vaxry
686eda9d48 eventLoop: remove failed readable waiters 2026-01-05 18:53:29 +01:00
Vaxry
ec4beb1b39
core/xwaylandmgr: fix min/max clamp potentially crashing 2026-01-02 14:06:46 +01:00
Vaxry
bd7f9aad05
input/ti: avoid sending events to inactive TIs
ref https://github.com/hyprwm/Hyprland/discussions/12105
2026-01-01 14:48:32 +01:00
skrmc
214fdb099c
input: guard null view() when processing mouse down (#12772) 2025-12-31 14:00:11 +01:00
Vaxry
293d3e5de9
desktopAnimationMgr: fix slide direction
ref https://github.com/hyprwm/Hyprland/discussions/12744
2025-12-30 14:09:13 +01:00
ArchSav
f8464866eb
keybinds: add inhibiting gestures under shortcut inhibitors (#12692) 2025-12-30 13:45:56 +01:00
Aditya Singh
e5d20b56bc
keybinds: simulate mouse movement after bringing active window to top (#12703)
Fixes https://github.com/hyprwm/Hyprland/discussions/12702
2025-12-27 21:27:59 +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
Mr. Goferito
d7f26038ee
keybinds: fix multikey binds breaking after scroll wheel events (#12638) 2025-12-26 23:16:31 +01:00
Vaxry
33df518f97
input: fix pending perm keyboards being enabled
fixes #12359
2025-12-26 16:08:31 +01:00
Vaxry
f7f357f15f
keybindmgr: fix focusCurrentOrLast 2025-12-23 15:04:56 +01:00
Vaxry
b9bef69554
Desktop/history: Move history to desktop (#12676) 2025-12-20 22:16:13 +00:00
Vaxry
70f54a1e1b
animationmgr: avoid possible uaf in handling anim updates 2025-12-20 19:13:04 +00:00
fuyu147
315806f598
tablet: added option to hide cursor (#12525) 2025-12-19 16:14:22 +00:00
Vaxry
6175ecd4c4
debug: move to hyprutils' logger (#12673) 2025-12-18 17:23:24 +00:00
Vaxry
7098558420
desktop/layer: store aboveFs property and use that 2025-12-16 16:32:37 +00:00
Vaxry
c94a981711
input: simplify mouseMoveUnified a tad 2025-12-16 15:55:54 +00:00
Vaxry
beb1b578e8
input: cleanup sendMotionEventsToFocused() 2025-12-16 15:18:53 +00:00
Maximilian Seidler
7ccc57eb7c
animation: migrate PHLANIMVAR from SP to UP (#12486) 2025-12-14 19:46:49 +00:00
Luke Barkess
6535ff07c9
anr: don't create for anr dialogs (#12601) 2025-12-14 17:19:35 +00:00
Tom Englund
8dfdcfb353
compositor: dont try to focus unmapped window (#12629)
* compositor: dont try to focus unmapped window

if lastwindow is unmapped it hits getWindowInDirection and nullptr
derefs window->m_workspace. and coredumps. triggered by dual monitor and
one client on each surface with a combination of animation and
killactive / movefocus keybind.

* keybindmgr: use newly added aliveAndVisible()

use newly added aliveAndVisible() over visible()
2025-12-11 23:59:47 +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
Nikolai Nechaev
222dbe99d0
keybinds: fix previous workspace remembering (#12399)
* swipe: Fix previous workspace remembering in workspace gesture

Fixes a bug that previous workspace does not exist after swiping to a workspace

* tests: Test that `workspace previous` works after workspace gesture

* moveActiveToWorkspace: remember previous workspace unconditionally
2025-12-05 20:43:30 +00:00
EvilLary
ebe74be75a
dispatcher: include mirrors of monitor in dpms (#12552)
* dispatcher/dpms: include mirrors

* use m_realMonitors instead
2025-12-05 20:29:39 +00:00
Vaxry
9264436f35
desktop: rewrite reserved area handling + improve tests (#12383) 2025-12-05 14:16:22 +00:00
Hleb Shauchenka
17ae3fb704
pointer: apply locked pointer workaround only on xwayland (#12402) 2025-12-04 18:05:50 +00:00
Vaxry
2cadc8abab
welcome: init welcome manager (#12409)
---------

Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
2025-12-02 22:26:43 +00:00
Honkazel
bb963fb002
protocols/cursor-shape: impl version 2 (#12270) 2025-11-30 15:05:31 +00:00