summaryrefslogtreecommitdiff
path: root/src/Compositor.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* core: Add a periodic donation request (#8981)Vaxry2025-01-101-1/+8
| | | Will fire once in december and july. Disableable with `ecosystem:no_donation:nag`
* selectors: add a tag: to for matching window tag(s) by regex (#8985)zakk42232025-01-091-0/+15
|
* core: Add support for HDR and color management protocols (#8715)UjinT342025-01-071-0/+19
|
* core: move parts of the animation system to hyprutils (#8868)Maximilian Seidler2025-01-071-39/+39
| | | | | | | | | | | | | * core: change animation manager to use Hyprutils::Animation * config: move animation config to hyprutils animation tree * use g_pAnimationManager->createAnimation and the new PHLANIMVAR template * core: use CGenericAnimatedVariabled::{enabled,setConfig,getStyle} and adapt callbacks * core: adapt animated variable usage (dereference the shared pointer) * misc: bump CMakeLists to hyprutils 0.3.3
* core: guard workspace and monitor in moveWorkspaceToMonitorvaxerski2025-01-041-1/+2
| | | | ref #7822
* socket2: add focusedmonv2 event (#8921)davc0n2025-01-031-1/+6
| | | | | * socket2: add focusedmonv2 event * socket2: remove workspace name from focusedmonv2
* keybinds: attempt to wrap around if fallback is allowed in movefocusvaxerski2025-01-021-28/+29
| | | | fixes #8909
* internal: few small monitor improvements (#8890)Ikalco2024-12-291-5/+0
| | | | | | | * remove framesToSkip, its not used anymore * only set drm format when needed after leaving direct scanout * always set drm damage
* core: refactor/improve monitor mode selection (#8804)Ikalco2024-12-281-1/+1
|
* core: fade in windows when they are brought from invisible workspacesVaxry2024-12-221-0/+6
|
* core: fix possible crash on null active workspaceVaxry2024-12-191-1/+2
| | | | fixes #7822
* internal: Make static analysis more happy (#8767)Ikalco2024-12-191-4/+4
| | | | | | | | | * make functions used in 1 file static * fix invalid substr param -1 * give default initializer to borderGradier * move RASSERT from printf to std::print
* internal: remove dead code (#8748)Ikalco2024-12-171-16/+0
|
* core: Move regex from stdlib to re2 (#8736)Vaxry2024-12-161-9/+11
| | | Moves the regex handling from stdlib to re2
* core: drop using deques in favor of vectorsVaxry2024-12-161-3/+3
| | | | No point in most of these.
* compositor: fix monitor arrangement with mixed auto directionsVaxry2024-12-131-32/+30
| | | | fixes #8518
* windows: allow replacing existing fullscreen (#8566)littleblack1112024-12-101-1/+4
| | | | | | | | | | | | | * feat: `binds:allow_replace_fullscreen` this allows replacement of fullscreen window(i.e. fullscreening another window when one is already fullscreened on the workspace) this is used when a floating window that is spawned on top of a fullscreen wanted to be fullscreened * clang-format * remove: config for `allow_replace_fullscreen`
* core: Add clang-tidy (#8664)Vaxry2024-12-071-20/+18
| | | | | This adds a .clang-tidy file for us. It's not a strict requirement to be compliant, but I tuned it to be alright.
* core: Add support for hyprqtutils' update screen (#8651)Vaxry2024-12-061-1/+13
| | | | | | | | | * Nix: add hyprland-qtutils to PATH * flake.lock: update --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* core: add a few festive splashesVaxry2024-12-051-2/+12
| | | | adds two new 'special' splash types for xmas and new years. Activated based on local time.
* core: move colorspace handling to oklab (#8635)Vaxry2024-12-031-5/+5
| | | | | | | | | | | * Meson: add hyprgraphics * Nix: add hyprgraphics * CI/setup_base: get hyprgraphics-git --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* binds: add option to allow fullscreening a pinned window (#8526)littleblack1112024-11-231-2/+13
|
* core: workspace-related function cleanup / refactorVaxry2024-11-221-159/+23
| | | | CCompositor is massive, and has a lot of functions that could be better optimized if in CWorkspace
* internal: fix changeWindowZOrder reordering incorrectly (#8494)Aqa-Ib2024-11-181-3/+3
|
* core: guard pmonitor in focuswindowVaxry2024-11-161-2/+2
| | | | | | may be null fixes #8483
* compositor: make sure we don't ret early on no surfaceVaxry2024-11-091-1/+1
| | | | | | if there is no implicit surface passed, make sure the current focus is not null, otherwise we nope early without focusing the window fixes #8293
* shadow: add sharp and refactor optionsVaxry2024-11-051-6/+5
| | | | options moved to decoration:shadow:
* renderer: Add a missing texture asset and a user checkVaxry2024-11-011-0/+6
| | | | | | | | When an asset is missing, instead of a black screen, render an obnoxious, yet standard, missing texture. Additionally, warn the user assets failed to load. Shoutout to Arch for having their assets broken for months. Fix your shit. I am tired of it, and it's negatively impacting users.
* internal: more profiling less calls and local copies (#8300)Tom Englund2024-10-301-12/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * compositor: reduce amount of window box copies mousemoveunified can call this very frequently, the cbox copying actually shows up as an impact in such cases, move it down in the scope and only do it when necessery. * core: constify and reference frequent calls profiling shows these as frequent called functions try to reduce the amount of copies with references and const the variables. * pointermgr: remove not used local copy, const ref remove unneded local copies and const ref cursorsize. * inputmgr: reduce amount of calls to vectortowindow the amount of calls to g_pCompositor->vectorToWindowUnified fast ramps up in cpu usage with enough windows existing and moving the mouse, move the PWINDOWIDEAL up and reuse it if its already the same. * protocol: compositor remove unused local copy remove unused local copy of accumulateCurrentBufferDamage and const previousBuffer. * renderer: reduce scope of variables and refactor move a few variables down in their scopes to reduce the amount of calls and copies when not needed, also add one more for loop in renderWorkspaceWindows and store the windows in a vector with weakpointers that should be rendered, this adds a loop but reduces the amount of repeated calls to shouldRenderWindow and also makes the rest of the loops go over way smaller vector when many windows exist.
* core: move internal structures to monitor pointers (#8266)Vaxry2024-10-271-32/+31
|
* core: fix group members disappearing when you move the group to another ↵Aqa-Ib2024-10-261-1/+1
| | | | | | | monitor (#8237) * fix group members disappearance when you move the group to another monitor * remove repeated action
* internal: cleanup CMonitor usage and fix a few ref hogsVaxry2024-10-261-4/+4
| | | | ref #8221
* groups: add group_on_movetoworkspace (#8159)Aqa-Ib2024-10-231-11/+38
|
* internal: Move CMonitor to SP (#8178)Vaxry2024-10-191-56/+56
| | | | | * move monitors to sp * XD
* monitor: modernize/refactor last legacy-handled eventsVaxry2024-10-191-1/+1
|
* hyprland: convert std::cout and std::cerr to std::println()Toni500git2024-10-131-6/+8
|
* input: Fix VRR for constrained cursors (#6877)UjinT342024-10-121-0/+4
|
* dispatchers: allow leading whitespace in window parameter (#8016)JManch2024-10-081-17/+20
|
* security-context: implement protocolVaxry2024-10-061-0/+12
| | | | fixes #7318
* compositor: update all xdg outputs on arrangeVaxry2024-10-051-0/+3
|
* compositor/wayland: up the max buffer size to avoid disconnects when app hangsVaxry2024-09-301-0/+4
|
* userchecks: add an xdg_current_desktop checkvaxerski2024-09-181-1/+11
| | | | | | ref https://github.com/hyprwm/xdg-desktop-portal-hyprland/issues/251 if the XDG_CURRENT_DESKTOP is externally managed (e.g. DE, DM, etc) Hyprland will not overwrite it. In those cases, if that's undesired, portals and other apps depending on it might break.
* internal: fix initial cursor warping (#7793)Ikalco2024-09-141-0/+34
|
* xwayland: add option to enable/disable xwayland (#7633)trianta2024-09-051-1/+1
| | | | | | | | | | | | | | | | | | | * config: add xwayland enabled option to config * xwayland: use DISPLAY env variable for enable/disable of new launches * xwayland: close X11 windows when turning of XWayland * clang: format fix * config: add better description for xwayland:enabled * xwayland: close X11 windows on disable without crashes * xwayland: better method of informing CXWayland if xwayland enabled * xwayland: prevent closing non-xwayland windows on disable * misc: loop formatting
* sessionLock: ensure sls focus in some edge cases (#7647)Maximilian Seidler2024-09-041-1/+1
| | | | | | | | | | | | | | | | * input: return early in mouseMoveUnified when the session is locked * sessionLock: make make a commit an opportunity to focus session lock surfaces * compositor: allow resetting focus when session is locked * input: remove redundant PMONITOR checks PMONITOR is checked above * input: check isSessionLocked earlier in mouseMoveUnified A bit of reordering, so that we don't call some stuff that is irrelevant when the session is locked
* xdg-dialog: implement new protocolVaxry2024-08-301-5/+12
|
* window/xwayland: minor property cleanupVaxry2024-08-301-7/+7
| | | | fixes #6921
* misc: constify the remaining for loops (#7534)Tom Englund2024-08-261-56/+56
| | | now we roll loops at blazing constified speed.
* core: make most for loops use const references (#7527)Tom Englund2024-08-261-16/+16
| | | | why not let the compiler optimise things for us at hyprspeeds when we can.
* misc: Rename all instances of "emtpy" to "empty" (#7522)Adithya Ajith2024-08-261-2/+2
|