summaryrefslogtreecommitdiff
path: root/src/managers
Commit message (Collapse)AuthorAgeFilesLines
* layout: rethonk layouts from the ground up (#12890)Vaxry2026-02-2111-481/+211
| | | | | 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.
* pointermgr: damage only the surface size (#13284)Tom Englund2026-02-211-13/+16
| | | | | | | | | | | | | | | | | * pointermgr: damage only the surface size CWaylandOutput returns a vector2d with -1, -1 set as a "no limit", passing that down into beginSimple and the renderer it hits pixman bug of invalid sizes and wrong rectangles gets created. causing bunch of *** BUG *** In pixman_region32_init_rect: Invalid rectangle passed set the damage either to cursor plane size or fallback to 256x256. * pointermgr: dedup if hw cursorsize checks dedup a bit if else casing
* multigpu: fix multi gpu checking (#13277)Tom Englund2026-02-211-1/+2
| | | | | | | | | | | | | | | * multigpu: fix multi gpu checking drmFD() from allocators is not always equal, because we reopen them inside AQ for refcounting, meaning they get duplicated and become their own fds, so checking if fd1 == fd2 ends up wrong. introduce sameGpu in MiscFunctions that checks the actual drmDevice meaning we can now even check if a rendernode is the same gpu as a display node if we want. * multigpu: move sameGpu to DRM namespace move sameGpu out of MiscFunctions to DRM namespace.
* welcome: skip in safe modeVaxry2026-02-191-0/+6
|
* versionKeeper: ignore minor rev versionVaxry2026-02-192-8/+4
| | | | no point in firing the update screen when no breaking changes happen on point releases
* dynamicPermManager: fix c+p failVaxry2026-02-101-1/+1
|
* protocols: commit and presentation timing fixes (#13174)UjinT342026-02-101-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | * 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
* input: fix kinetic scroll (#13233)bea4dev2026-02-104-1/+21
|
* layershell: restore focus to layer shell surface after popup is destroyed ↵Aurelle2026-02-091-13/+22
| | | | (#13225)
* renderer: allow tearing with DS with invisible cursors (#13155)UjinT342026-02-072-2/+10
|
* proto/shm: update wl_shm to v2 (#13187)EvilLary2026-02-061-1/+1
|
* gestures/fs: remove unneeded floating state switch (#13127)Łukasz Rek2026-02-031-1/+0
|
* gestures: add cursor zoom (#13033)Luke Barkess2026-02-012-0/+57
|
* renderer: fix mouse motion in VRR (#12665)Szwagi2026-01-315-61/+25
|
* eventLoop: various eventloopmgr fixes (#13091)Tom Englund2026-01-271-12/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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()
* desktop/windowRule: allow expression in min_size/max_size (#12977)Florent Charpentier2026-01-211-3/+13
|
* desktop: restore invisible floating window alpha/opacity when focused over ↵Naufal Hisyam Muzakki2026-01-212-0/+9
| | | | fullscreen (#12994)
* animation: reset tick state on session activation (#13024)William Wernert2026-01-212-0/+8
| | | | | | | | | 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.
* pointermgr: remove onRenderBufferDestroy (#13008)Tom Englund2026-01-181-4/+3
| | | | | 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.
* anr: remove window on closewindow (#13007)Tom Englund2026-01-171-1/+2
| | | | m_data was never cleaned and continously built up the m_data, remove the entry on closeWindow.
* core: optimize some common branchesVaxry2026-01-161-2/+2
|
* animationMgr: avoid uaf in ::tick() if handleUpdate destroys AVVaxry2026-01-081-0/+3
| | | | ref https://github.com/hyprwm/Hyprland/discussions/12840
* anr: open anr dialog on parent's workspace (#12509)EvilLary2026-01-061-14/+18
|
* input/TI: avoid UAF in destroyVaxry2026-01-052-14/+14
|
* protocolMgr: remove IME / virtual input protocols from sandbox whitelistVaxry2026-01-051-3/+0
|
* eventLoop: remove failed readable waitersVaxry2026-01-052-0/+12
|
* core/xwaylandmgr: fix min/max clamp potentially crashingVaxry2026-01-021-1/+1
|
* input/ti: avoid sending events to inactive TIsVaxry2026-01-013-0/+10
| | | | ref https://github.com/hyprwm/Hyprland/discussions/12105
* input: guard null `view()` when processing mouse down (#12772)skrmc2025-12-311-2/+4
|
* desktopAnimationMgr: fix slide directionVaxry2025-12-301-26/+22
| | | | ref https://github.com/hyprwm/Hyprland/discussions/12744
* keybinds: add inhibiting gestures under shortcut inhibitors (#12692)ArchSav2025-12-302-7/+23
|
* keybinds: simulate mouse movement after bringing active window to top (#12703)Aditya Singh2025-12-271-0/+2
| | | Fixes https://github.com/hyprwm/Hyprland/discussions/12702
* render/cm: various updates, remove old protocols (#12693)UjinT342025-12-271-12/+2
| | | | | | | | | | | | | * fix named primaries * default to gamma22 * mark mastering primaries as supported * remove xx-cm and frog support * immutable primaries and image descriptions * clang-format
* rules/windowRuleApplicator: fix min/max size effects (#12491)Vaxry2025-12-272-2/+10
| | | fixes #12412
* keybinds: fix multikey binds breaking after scroll wheel events (#12638)Mr. Goferito2025-12-261-10/+16
|
* input: fix pending perm keyboards being enabledVaxry2025-12-261-0/+5
| | | | fixes #12359
* keybindmgr: fix focusCurrentOrLastVaxry2025-12-231-2/+6
|
* Desktop/history: Move history to desktop (#12676)Vaxry2025-12-203-28/+17
|
* animationmgr: avoid possible uaf in handling anim updatesVaxry2025-12-201-24/+28
|
* tablet: added option to hide cursor (#12525)fuyu1472025-12-193-2/+9
|
* debug: move to hyprutils' logger (#12673)Vaxry2025-12-1827-292/+294
|
* desktop/layer: store aboveFs property and use thatVaxry2025-12-162-18/+27
|
* input: simplify mouseMoveUnified a tadVaxry2025-12-161-12/+8
|
* input: cleanup sendMotionEventsToFocused()Vaxry2025-12-161-7/+20
|
* animation: migrate PHLANIMVAR from SP to UP (#12486)Maximilian Seidler2025-12-142-8/+5
|
* anr: don't create for anr dialogs (#12601)Luke Barkess2025-12-142-4/+9
|
* compositor: dont try to focus unmapped window (#12629)Tom Englund2025-12-111-1/+1
| | | | | | | | | | | | * 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()
* desktop/view: use aliveAndVisible for most things (#12631)Vaxry2025-12-111-4/+4
|
* desktop: cleanup, unify desktop elements as views (#12563)Vaxry2025-12-0822-121/+132
|
* keybinds: fix previous workspace remembering (#12399)Nikolai Nechaev2025-12-052-8/+6
| | | | | | | | | * 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