summaryrefslogtreecommitdiff
path: root/src/desktop/Window.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* core: Add clang-tidy (#8664)Vaxry2024-12-071-1/+1
| | | | | This adds a .clang-tidy file for us. It's not a strict requirement to be compliant, but I tuned it to be alright.
* internal: fixup some missed updateColorsOk() callsVaxry2024-12-031-0/+2
|
* core: move colorspace handling to oklab (#8635)Vaxry2024-12-031-2/+2
| | | | | | | | | | | * Meson: add hyprgraphics * Nix: add hyprgraphics * CI/setup_base: get hyprgraphics-git --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* core: workspace-related function cleanup / refactorVaxry2024-11-221-15/+23
| | | | CCompositor is massive, and has a lot of functions that could be better optimized if in CWorkspace
* internal: fix some misused configStringToInt conversionsVaxry2024-11-201-1/+1
| | | | fixes #8523
* miscfunctions: move configStringToInt to std::expectedVaxry2024-11-181-4/+4
|
* windows/xdg: minor cleanup of min/max size calculationsVaxry2024-11-171-0/+26
| | | | fixes #8495
* internal: check size limit in layouts (#8298)MightyPlaza2024-10-301-1/+1
| | | | | | | | | | | modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/events/Windows.cpp modified: src/helpers/MiscFunctions.cpp modified: src/helpers/MiscFunctions.hpp modified: src/layout/DwindleLayout.cpp modified: src/layout/IHyprLayout.cpp modified: src/layout/MasterLayout.cpp modified: src/macros.hpp
* swallow: check if swallow_regex doesn't exist (#8265)Aqa-Ib2024-10-281-1/+1
| | | Avoid to run CWindow::getSwallower() when `swallow_regex` doesn't exist in the user's config file.
* core: move internal structures to monitor pointers (#8266)Vaxry2024-10-271-25/+29
|
* internal: optimize cursor move a bit (#8264)Tom Englund2024-10-271-4/+0
| | | | | | | | | | | | | | | | | | | | | * window: inline and const getWindowMainSurfaceBox getWindowMainSurfaceBox gets called a lot of times from deep down from mousemoveunified, profiling mousemoveunified it spends quite a lot of cpu time in here, let the compiler optimize the call to getWindowMainSurfaceBox by inlining and making it const. reducing the overhead. * inputmgr: return early and use std::any_of return early in mousemoveunified to reduce the amount of unnecessery calls to various pointers when not needed, also make isconstrained use std::any_of instead of for loop to use the STL optimized paths with hopes and dreams marginally faster. * decoration: return early, reduce temporar copy return earlier and reduce the temp copies by using one .lock instead of two
* internal: Move CMonitor to SP (#8178)Vaxry2024-10-191-1/+1
| | | | | * move monitors to sp * XD
* window: properly break cycles in X11TransientForVaxry2024-10-161-4/+10
| | | | ref #8045
* internal: use clampWindowSize to unify min/maxsize handling (#8014)MightyPlaza2024-10-071-6/+14
| | | | | modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/events/Windows.cpp
* internal: Fix change group current fullscreen state query (#7802)AlvinaNancy2024-09-151-1/+1
|
* config: Add a variable to prevent groups from merging after being dragged ↵Parola Marco2024-09-051-1/+5
| | | | | | | (#7650) * config: Add a variable to prevent groups from merging after being dragged * Fixed code style for [f777f028]
* config: Add a window rule to render while unfocused (#7582)Vaxry2024-08-301-0/+5
|
* window/xwayland: minor property cleanupVaxry2024-08-301-3/+10
| | | | fixes #6921
* renderer: fade out windows on silent movesVaxry2024-08-281-0/+10
|
* window: don't focus on activate if window isn't mapped yetVaxry2024-08-281-0/+5
| | | | ref #7089
* misc: constify the remaining for loops (#7534)Tom Englund2024-08-261-8/+8
| | | now we roll loops at blazing constified speed.
* core: make most for loops use const references (#7527)Tom Englund2024-08-261-8/+8
| | | | why not let the compiler optimise things for us at hyprspeeds when we can.
* internal: introduce new types to avoid unsigned int rollover and signed int ↵Tom Englund2024-08-081-1/+1
| | | | | | | | | | | | | | | | | | | | overflow (#7216) * framebuffer: avoid gluint overflow GLuint was being initialized to -1 and rolling over to unsigned int max, its defined behaviour but very unnecessery. add a bool and use it for checking if allocated or not. * opengl: avoid gluint rollover -1 rolls over to unsigned int max, use 0xFF instead. * core: big uint64_t to int type conversion there were a few uint64_t to int implicit conversions overflowing int and causing UB, make all monitor/workspaces/windows use the new typedefs. also fix the various related 64 to 32 implicit conversions going around found with -Wshorten-64-to-32
* core: Add missing header for libc++ after e989a0bcffac (#7158)Jan Beich2024-08-031-0/+1
| | | | | | | | | | | src/Compositor.cpp:2295:74: error: no member named 'bit_floor' in namespace 'std' 2295 | const eFullscreenMode CURRENT_EFFECTIVE_MODE = (eFullscreenMode)std::bit_floor((uint8_t)PWINDOW->m_sFullscreenState.internal); | ~~~~~^ src/Compositor.cpp:2296:74: error: no member named 'bit_floor' in namespace 'std' 2296 | const eFullscreenMode EFFECTIVE_MODE = (eFullscreenMode)std::bit_floor((uint8_t)state.internal); | ~~~~~^ src/desktop/Window.cpp:1242:34: error: no member named 'bit_floor' in namespace 'std' 1242 | return (eFullscreenMode)std::bit_floor((uint8_t)m_sFullscreenState.internal) == MODE; | ~~~~~^
* core/surface/buffer: Buffer lock/release fixes (#7110)Vaxry2024-07-311-5/+5
|
* internal: refactor fullscreen states (#7104)MightyPlaza2024-07-311-19/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * refactor fullscreen modified: src/Compositor.cpp modified: src/Compositor.hpp modified: src/config/ConfigManager.cpp modified: src/config/ConfigManager.hpp modified: src/debug/HyprCtl.cpp modified: src/desktop/LayerSurface.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/desktop/Workspace.cpp modified: src/desktop/Workspace.hpp modified: src/events/Windows.cpp modified: src/helpers/Monitor.cpp modified: src/layout/DwindleLayout.cpp modified: src/layout/DwindleLayout.hpp modified: src/layout/IHyprLayout.cpp modified: src/layout/IHyprLayout.hpp modified: src/layout/MasterLayout.cpp modified: src/layout/MasterLayout.hpp modified: src/managers/KeybindManager.cpp modified: src/managers/KeybindManager.hpp modified: src/managers/input/IdleInhibitor.cpp modified: src/managers/input/InputManager.cpp modified: src/managers/input/Swipe.cpp modified: src/protocols/ForeignToplevelWlr.cpp modified: src/render/Renderer.cpp modified: src/render/decorations/CHyprGroupBarDecoration.cpp * clean up modified: src/config/ConfigManager.cpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.hpp modified: src/desktop/Workspace.cpp modified: src/events/Windows.cpp modified: src/managers/KeybindManager.cpp modified: src/managers/input/Swipe.cpp * fix mapWindow fullscreen modified: src/events/Windows.cpp * fix typo modified: src/desktop/Workspace.cpp * add fullscreenstate modified: src/config/ConfigManager.cpp modified: src/events/Windows.cpp * change syncFullscreen to lower modified: src/config/ConfigManager.hpp * initialize fs state modified: src/desktop/Window.hpp
* input: unify removing currentlyDraggedWindow (#7071)MightyPlaza2024-07-271-7/+1
| | | | | | | | modified: src/desktop/Window.cpp modified: src/events/Windows.cpp modified: src/layout/IHyprLayout.cpp modified: src/managers/KeybindManager.cpp modified: src/managers/KeybindManager.hpp modified: src/managers/input/InputManager.cpp
* Core: Move to aquamarine (#6608)Vaxry2024-07-211-1/+2
| | | | | | | | | | | | | | Moves Hyprland from wlroots to aquamarine for the backend. --------- Signed-off-by: Vaxry <vaxry@vaxry.net> Co-authored-by: Mihai Fufezan <mihai@fufexan.net> Co-authored-by: Jan Beich <jbeich@FreeBSD.org> Co-authored-by: vaxerski <vaxerski@users.noreply.github.com> Co-authored-by: UjinT34 <41110182+UjinT34@users.noreply.github.com> Co-authored-by: Tom Englund <tomenglund26@gmail.com> Co-authored-by: Ikalco <73481042+ikalco@users.noreply.github.com> Co-authored-by: diniamo <diniamo53@gmail.com>
* socket2: Add windowtitlev2 event which includes the window address (#6856)Tim Waterhouse2024-07-131-0/+1
| | | Fixes #5393
* core: Improve handling of window properties (#6776)MightyPlaza2024-07-111-125/+85
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * add mWindowProperties modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/events/Windows.cpp * support int values modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp * create m_sWindowData modified: src/Compositor.cpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/events/Windows.cpp modified: src/layout/DwindleLayout.cpp modified: src/layout/IHyprLayout.cpp modified: src/layout/MasterLayout.cpp modified: src/managers/AnimationManager.cpp modified: src/managers/KeybindManager.cpp modified: src/managers/XWaylandManager.cpp modified: src/render/OpenGL.cpp modified: src/render/Renderer.cpp modified: src/render/decorations/CHyprBorderDecoration.cpp modified: src/render/decorations/CHyprDropShadowDecoration.cpp modified: src/render/decorations/CHyprGroupBarDecoration.cpp * simplify some properties modified: src/Compositor.cpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/managers/KeybindManager.cpp * store multiple values in CWindowOverridableVar modified: src/Compositor.cpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/events/Windows.cpp modified: src/layout/IHyprLayout.cpp modified: src/managers/AnimationManager.cpp modified: src/managers/KeybindManager.cpp modified: src/managers/XWaylandManager.cpp modified: src/render/OpenGL.cpp modified: src/render/Renderer.cpp modified: src/render/decorations/CHyprBorderDecoration.cpp modified: src/render/decorations/CHyprDropShadowDecoration.cpp modified: src/render/decorations/CHyprGroupBarDecoration.cpp * clean up modified: src/Compositor.cpp modified: src/Compositor.hpp modified: src/config/ConfigManager.cpp modified: src/config/ConfigManager.hpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/events/Windows.cpp modified: src/layout/DwindleLayout.cpp modified: src/layout/IHyprLayout.cpp modified: src/layout/IHyprLayout.hpp modified: src/layout/MasterLayout.cpp modified: src/managers/KeybindManager.cpp * use SET_PROP priority for exec rules modified: src/config/ConfigManager.hpp modified: src/desktop/Window.cpp * add default value modified: src/Compositor.cpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/events/Windows.cpp modified: src/layout/IHyprLayout.cpp modified: src/managers/KeybindManager.cpp modified: src/managers/XWaylandManager.cpp modified: src/render/OpenGL.cpp modified: src/render/Renderer.cpp modified: src/render/decorations/CHyprBorderDecoration.cpp modified: src/render/decorations/CHyprDropShadowDecoration.cpp modified: src/render/decorations/CHyprGroupBarDecoration.cpp * add setprop toggle modified: src/config/ConfigManager.hpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp * add setprop toggle modified: src/debug/HyprCtl.cpp * make window rules functional modified: src/config/ConfigManager.cpp modified: src/desktop/Window.cpp * minor fixes modified: src/Compositor.cpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.hpp * properly clean layout data modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/events/Windows.cpp modified: src/layout/DwindleLayout.cpp modified: src/layout/IHyprLayout.cpp modified: src/layout/IHyprLayout.hpp modified: src/layout/MasterLayout.cpp * remove newline modified: src/events/Windows.cpp * fixes modified: src/config/ConfigManager.hpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp * use CamelCase modified: src/Compositor.cpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/events/Windows.cpp modified: src/layout/IHyprLayout.cpp modified: src/managers/AnimationManager.cpp modified: src/managers/KeybindManager.cpp modified: src/managers/XWaylandManager.cpp modified: src/render/OpenGL.cpp modified: src/render/Renderer.cpp modified: src/render/decorations/CHyprBorderDecoration.cpp modified: src/render/decorations/CHyprDropShadowDecoration.cpp modified: src/render/decorations/CHyprGroupBarDecoration.cpp
* xwayland: break cyclic loop of parents (#6722)Tom Englund2024-07-011-2/+4
| | | | | in X11 some surfaces is a parent of itself and creates a cyclic loop when trying to find its parent. check for old parent and break if its beginning to roll over.
* core: Move to hyprutils for MathVaxry2024-06-191-5/+5
| | | | | | Moves CRegion, CBox and Vector2D over to hyprutils. Requires hyprutils>=0.1.4
* window: improve swallowing functionalityVaxry2024-06-151-0/+55
| | | | | | cleanups, fixes, etc. ref #6095
* core: move to hyprutils for utils (#6385)Vaxry2024-06-111-1/+4
| | | | | | | | | | | | | * core: move to hyprutils for utils Nix: add hyprutils dep * Meson: add hyprutils dep * flake.lock: update --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* wayland/core: move to new impl (#6268)Vaxry2024-06-081-47/+43
| | | | | * wayland/core/dmabuf: move to new impl it's the final countdown
* input: add cursor:persistent_warps to maintain relative position within a ↵memchr2024-06-071-1/+12
| | | | | | | | | window (#6338) Allows the cursor to return to its last relative position within a window when the window is refocused. Allows the cursor to retain its relative position within a window when the window is swapped, moved, changed workspace, added to or removed from groups. controlled with cursor:persistent_warps
* window: avoid nullptr deref on monitor in box helpersVaxry2024-06-031-5/+7
| | | | fixes #6321
* renderer: fix xwayland solitary rechecks (#6295)shezdy2024-06-011-2/+2
|
* config: add tag dispacther and window rule (#6211)giskard2024-05-281-7/+19
|
* xwayland: move to hyprland impl (#6086)Vaxry2024-05-251-39/+125
|
* window: fix invalid env buffer size in getEnvvaxerski2024-05-241-1/+4
|
* window: guard monitor in bounding box calculationsvaxerski2024-05-221-5/+5
| | | | fixes #6190
* window: verify suppress flags in onUpdateStateVaxry2024-05-171-2/+2
| | | | ref #6108
* xdg-shell: move to new implVaxry2024-05-141-37/+169
|
* windowrules add focusonactivate (#5976)MightyPlaza2024-05-101-1/+5
| | | | | modified: src/config/ConfigManager.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp
* cursor: move to a hyprland implVaxry2024-05-091-1/+1
| | | | | | | This moves wlr_cursor to a completely new impl mostly under CPointerManager Also adds beginSimple to OpenGL for simple render passes (e.g. cursor)
* foreign-toplevel: bypass no activate focus checksVaxry2024-05-081-2/+2
| | | | | | ref #5939 those are used by focus switchers so they should bypass stuff like focus_on_activate = false
* window: avoid uaf on updateWindow decosVaxry2024-05-071-0/+2
| | | | | | TODO, make these pointers SP to avoid this in the future. fixes #5909
* ipc: add togglegroup, moveintogroup and moveoutofgroup events (#5866)VPavliashvili2024-05-071-0/+11
|
* internal: new shared_ptr and weak_ptr implementation (#5883)Vaxry2024-05-051-2/+2
| | | | | | | | | | | moves std::shared_ptrs to a new implementation Advantages: - you can dereference a weak_ptr directly. This will obviously segfault on a nullptr deref if it's expired. - this is useful to avoid the .lock() hell where we are 100% sure the pointer _should_ be valid. (and if it isn't, it should throw.) - weak_ptrs are still valid while the SP is being destroyed. - reasoning: while an object (e.g. CWindow) is being destroyed, its `weak_ptr self` should be accessible (the sp is still alive, and so is CWindow), but it's not because by stl it's already expired (to prevent resurrection) - this impl solves it differently. w_p is expired, but can still be dereferenced and used. Creating `s_p`s is not possible anymore, though. - this is useful in destructors and callbacks.