summaryrefslogtreecommitdiff
path: root/src/Compositor.cpp
Commit message (Collapse)AuthorAgeFilesLines
* source: c-f for new clang versionVaxry2026-03-151-4/+4
|
* compositor: When processing fullscreen states, only use effective mode where ↵Nikolai Nechaev2026-03-101-12/+18
| | | | | | | | | 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.
* renderer: refactor gl renderer (#13488)UjinT342026-03-071-3/+4
|
* renderer: refactor resources and flags (#13471)UjinT342026-03-071-4/+9
|
* compositor: fix missing recheckWorkArea to prevent CReservedArea assert ↵Logan Collins2026-03-061-0/+2
| | | | failure (#13590)
* compositor: damage monitors on workspace attachment updatesVaxry2026-03-021-0/+4
| | | | ref https://github.com/hyprwm/Hyprland/discussions/13386
* layouts: fix crash on missed relayout updates (#13444)Vaxry2026-02-281-0/+1
|
* monitor: keep workspace monitor bindings on full reconnect (#13384)Zynix2026-02-281-0/+21
| | | When all monitors disconnect, non-active workspaces could migrate to the wrong output after reconnect. Preserve workspace ownership and re-apply assigned monitor bindings on connect.
* compositor: fix focus edge detection (#13425)Vaxry2026-02-281-8/+33
| | | | fixes edge detection, making it more relaxed and intuitive
* compositor: fix calculating x11 work area (#13347)Vaxry2026-02-251-27/+21
| | | in a multimon scenario, due to our positioning hacks, and due to the fact work area is a rect anyways, likely wont make sense
* event: refactor HookSystem into a typed event bus (#13333)Vaxry2026-02-221-20/+12
| | | | | Refactors the old HookSystem into a typed event bus with clear separation, discovery and types.
* protocols: implement image-capture-source-v1 and image-copy-capture-v1 (#11709)Ikalco2026-02-221-0/+1
| | | Implements the new screencopy protocols
* layout: rethonk layouts from the ground up (#12890)Vaxry2026-02-211-84/+54
| | | | | 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.
* compositor: guard null view() in getWindowFromSurface (#13255)garypippi2026-02-131-1/+1
|
* input: fix edge grab resize logic for gaps_out > 0 (#13144)ekhadley2026-02-011-0/+2
|
* renderer: fix mouse motion in VRR (#12665)Szwagi2026-01-311-0/+4
|
* animation: reset tick state on session activation (#13024)William Wernert2026-01-211-0/+4
| | | | | | | | | 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.
* protocols/cm: Fix image description info events (#12781)UjinT342026-01-131-7/+10
| | | | | | | | | | | | | | | | | | | | | | | * fix image description info events * always send some target primaries * set edid values as target primaries and luminances * init monitor image description * set default luminances for tf * fix BT1886 luminances * fix mastering values and overrides * set maxCLL & maxFALL * typo * add FALL & CLL to preferred HDR image description * fix ref luminances
* protocols/syncobj: fix DRM sync obj support logging (#12946)Chris Naporlee2026-01-121-4/+4
|
* render/cm: various updates, remove old protocols (#12693)UjinT342025-12-271-17/+13
| | | | | | | | | | | | | * fix named primaries * default to gamma22 * mark mastering primaries as supported * remove xx-cm and frog support * immutable primaries and image descriptions * clang-format
* Desktop/history: Move history to desktop (#12676)Vaxry2025-12-201-11/+12
|
* debug: move to hyprutils' logger (#12673)Vaxry2025-12-181-142/+127
|
* compositor: warn on start via a log about start-hyprlandVaxry2025-12-171-1/+2
|
* desktop/layer: store aboveFs property and use thatVaxry2025-12-161-1/+5
|
* core/compositor: remove a monitor reset on cleanup (#12645)Mason Davy2025-12-151-3/+0
| | | | | | I've tested this change with different modes from the monitor default and validated that dpms still works, at least on my machine. If there's a good reason why this exists, feel free to correct me, but this helps get us closer to a flicker-free experience.
* compositor: fix isPointOnReservedAreaVaxry2025-12-131-2/+2
|
* compositor: return nullptr when cursor is outside of a maximized windows' boxVaxry2025-12-131-2/+12
|
* compositor: early return on no monitor (#12637)Tom Englund2025-12-121-1/+4
| | | | | getMonitorFromVector can return nullptr on empty m_monitors, as such is the case when the compositor is going down and a surface exist. return early in vectorToWindowUnified if that happends.
* compositor: dont try to focus unmapped window (#12629)Tom Englund2025-12-111-0/+3
| | | | | | | | | | | | * 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-3/+3
|
* desktop: cleanup, unify desktop elements as views (#12563)Vaxry2025-12-081-29/+35
|
* start: init start-hyprland and safe mode (#12484)Vaxry2025-12-051-2/+60
|
* desktop: rewrite reserved area handling + improve tests (#12383)Vaxry2025-12-051-8/+7
|
* crashReporter: cleanup code (#12534)Vaxry2025-12-031-2/+2
| | | | various code cleanups, reorders, move off of global NS
* renderer: add quirks:prefer_hdr to fix HDR activation for some clients (#12436)UjinT342025-12-031-0/+21
|
* welcome: init welcome manager (#12409)Vaxry2025-12-021-0/+5
| | | | | --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* compositor: Configurable behavior when window to be focused conflicts with ↵Nikolai Nechaev2025-11-251-249/+33
| | | | | | | | | | fullscreen (#12033) Renames `misc:new_window_takes_over_fullscreen` into `misc:on_focus_under_fullscreen` and implements the following behavior: - By default, when a tiling window is being focused on a workspace where a fullscreen/maximized window exists, respect the `misc:on_focus_under_fullscreen` config variable.
* windowrules: rewrite completely (#12269)Vaxry2025-11-171-117/+27
| | | | | | | Reworks the window rule syntax completely --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* i18n: init localization for ANR, Permissions and Notifications (#12316)Vaxry2025-11-161-11/+7
| | | | | | | | Adds localization support for en, it, pl and jp --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net> Co-authored-by: Aaron Blasko <blaskoazzolaaaron@gmail.com>
* internal: fix crash at startup on FreeBSD (#12298)Hiroki Tagato2025-11-131-0/+2
| | | | | Hyprland at the latest commit crashes at starting up on FreeBSD with SIGSEGV. Checking the validity of g_pXWayland->m_wm before calling updateWorkArea() appears to fix the issue.
* core: qtutils -> guiutils (#12231)Vaxry2025-11-071-4/+4
| | | | | | | | | | | * core: qtutils -> guiutils * nix: qtutils -> guiutils * flake.lock: update --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* compositor: block parent window interaction when modal dialog children ↵Alvaro Parker2025-11-061-13/+25
| | | | window is open (#12057)
* xwayland: set _NET_WORKAREA property (#12148)jmanc32025-10-291-0/+36
|
* compositor: check for monitor layout issues post rule applyVaxry2025-10-261-0/+32
| | | | fixes #12108
* workspaces: fix persistence with no monitor specified (#11807)Vaxry2025-09-231-2/+5
|
* renderer: asynchronously load background tex (#11749)Vaxry2025-09-181-0/+5
| | | | | | | Bumps required hyprgraphics to 0.1.6 --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* input: Add fully configurable trackpad gestures (#11490)Vaxry2025-08-281-38/+15
| | | Adds configurable trackpad gestures
* syncobj: use rendernode for timelines (#11087)Tom Englund2025-08-241-13/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * syncobj: use rendernode for timelines use rendernode for timelines instead of the drmfd, some devices dont support to use the drmfd for this. * opengl: use rendernode if available use rendernode if available for CHyprOpenglImpl * MesaDRM: use the m_drmRenderNodeFD if it exist try use the rendernode we got from AQ if it exist. * linuxdmabuf: use rendernode if available use the rendernode if available already from AQ * syncobj: prefer rendernode over displaynode prefer the rendernode over the displaynode, and log a error if attempting to use the protocol without explicit sync support on any of the nodes. * syncobj: check support on both nodes always check support on both nodes always so it can be used later for preferring rendernode if possible in syncobj protocol. * syncobj: remove old var in non linux if else case remove old m_bDrmSyncobjTimelineSupported from non linux if else case that will fail to compile on non linux. the nodes sets support by default to false, and if non linux it wont check for support and set it to true. * build: bump aq requirement bump to 0.9.3 where rendernode support got added. * flake.lock: update * renderer: glfinish on software renderer software renderers apparently bug out on implicit sync, use glfinish as with nvidia case on implicit paths. * flake.lock: update --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* internal: Solitary clients with single subsurface & verbose ↵UjinT342025-08-221-2/+5
| | | | | solitary/tearing/DS checks (#11228) Adds more verbose checks for various conditional rendering mechanisms
* config: add dim_modalvaxerski2025-08-211-1/+2
| | | | fixes #11486