summaryrefslogtreecommitdiff
path: root/src/layout
Commit message (Collapse)AuthorAgeFilesLines
...
* internal: introduce new types to avoid unsigned int rollover and signed int ↵Tom Englund2024-08-085-25/+25
| | | | | | | | | | | | | | | | | | | | 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
* decorations: fix infinite recursion on no_gaps when only (#7169)MightyPlaza2024-08-032-6/+4
| | | | | modified: src/layout/DwindleLayout.cpp modified: src/layout/MasterLayout.cpp modified: src/render/decorations/CHyprBorderDecoration.cpp
* internal: fix fullscreen typos (#7134)MightyPlaza2024-08-011-1/+1
| | | | modified: src/events/Windows.cpp modified: src/layout/DwindleLayout.cpp
* internal: refactor fullscreen states (#7104)MightyPlaza2024-07-316-119/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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-6/+7
| | | | | | | | 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
* layout: update workspace rules on layout change (#6878)MightyPlaza2024-07-153-0/+7
| | | | | modified: src/layout/DwindleLayout.cpp modified: src/layout/IHyprLayout.cpp modified: src/layout/MasterLayout.cpp
* core: Improve handling of window properties (#6776)MightyPlaza2024-07-113-20/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* core: Move to hyprutils for MathVaxry2024-06-193-10/+10
| | | | | | Moves CRegion, CBox and Vector2D over to hyprutils. Requires hyprutils>=0.1.4
* master: refine master layout new window handling (#6479)memchr2024-06-151-13/+41
| | | | | | | | | | | | | | | | | | | | | * ## Open window relative to active window `new_on_active`: - `none` (default): - `before`: above of the focused window - `after`: below the focused window If the focused window is the solo master window, or the new window replaces master, this option has no effect and new_on_top are respected. ## Refine new window status control **BREAKING CHANGE**: new_is_master removed in favour of new variable `new_status`: - `slave` (default): new window open as slave - `master`: new window open as master - `inherit`: new window inherit status from active window, i.e. when the focused window is master, new window will become new master, otherwise new window are added to slaves * refactor: rename a few variables
* wayland/core: move to new impl (#6268)Vaxry2024-06-081-2/+3
| | | | | * wayland/core/dmabuf: move to new impl it's the final countdown
* layout: fix centering of new floating windowsvaxerski2024-06-031-1/+1
| | | | ref #6154
* xwayland: move to hyprland impl (#6086)Vaxry2024-05-251-4/+5
|
* layout: Fix shrinking pseudotile windows. (#6143)Gabriel Ford2024-05-181-1/+1
|
* xdg-shell: move to new implVaxry2024-05-141-3/+8
|
* internal: new shared_ptr and weak_ptr implementation (#5883)Vaxry2024-05-053-33/+33
| | | | | | | | | | | 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.
* layout: limit updates when mouse animate drag is enabled (#5838)thejch2024-05-021-1/+1
|
* internal: Window storage rework - part 1 (#5762)Vaxry2024-04-276-224/+224
| | | | | | | | | | | | | | | | | * Window storage rework - part 1 * format * remove useless include * fix pch * format * fix crash in dwindle * fix vram leak * prefer .expired() for bool checks
* keybindmgr: add optional `silent` suffix to `movewindow`. (#5597)Maarten de Vries2024-04-175-8/+21
| | | | | | With the `silent` suffix, the focus remains on the current position in the layout or the current monitor, instead of following the moved window. When combined with `movewindow mon:X`, this this allows you to get the same behavior as xmonad's `windowToScreen` command.
* master: change the mfact dispatcher to use splitratio (#4766)thejch2024-04-131-13/+1
| | | | | * master layout: change the mfact dispatcher to use splitratio * add space for concat
* master: fix full height when all windows master (#5549)Jan-Peter Dhallé2024-04-121-1/+1
|
* master: fix crash (#5472)thejch2024-04-071-1/+1
|
* master: fix workspace orientation not being restored after workspace rule no ↵thejch2024-04-062-37/+35
| | | | longer applies (#5463)
* workspacerules: fix workspace rule loops (#5433)thejch2024-04-052-48/+17
|
* layouts: add missing includeVaxry2024-04-042-0/+2
|
* master: fix swapped workspaces (#5397)thejch2024-04-031-1/+1
|
* master: fix center resizing (#5394)thejch2024-04-031-1/+1
|
* Workspace/core: Refactor workspace storage (#5380)Vaxry2024-04-025-103/+92
| | | | | * refactor workspaces to use ptrs * clang-format
* master: guard window in moveWindowToVaxry2024-04-021-0/+3
| | | | fixes #5374
* master: Make master workspace orientation rule dynamic (#5339)thejch2024-04-011-7/+26
| | | | | | | | | * make master workspace orientation rule dynamic * fix rebase * fix special ws resizing * style
* core: match all workspace rules instead of the first one only (#5340)thejch2024-03-312-17/+46
|
* layout: improve initial size prediction for floatingVaxry2024-03-296-7/+66
|
* build: fix builds without pch (#5198)Brett Alcox2024-03-211-0/+1
|
* refactor: move window.hpp to desktop/Vaxry2024-03-202-1/+3
|
* input: Only limit drag resizes (#5164)phonetic1122024-03-191-1/+1
| | | | | | | * only limit drag resizes * change to not equals * remove extra parentheses
* animations: Fix incorrect animation when manually moving a window when its ↵thejch2024-03-193-0/+12
| | | | | | | being created (#5141) * fix incorrect rendering when manually moving a window when its being created * add setAnimationsToMove
* master: fix moving fullscreen workspace and remove duplicate code (#5131)thejch2024-03-173-78/+39
|
* master: fix invalid config usageVaxry2024-03-151-2/+2
|
* input: only override dragging corner on floating (#5092)djvs2024-03-131-1/+1
| | | Co-authored-by: djvs <djvs@users.noreply.github.com>
* input: add general:resize_corner for manual resizing (#5090)djvs2024-03-131-1/+21
| | | | | | | | | * Resize corner config thing * clang-format --------- Co-authored-by: djvs <djvs@users.noreply.github.com>
* master: Fix master layout window focus and scroll (#5074)thejch2024-03-132-62/+29
| | | | | | | | | | | * fix master switch window scrolling * fix some more dispatchers and remove some duplicate code * refactor and remove duplicate code * fix focusmonitor: https://github.com/hyprwm/Hyprland/issues/5006#issuecomment-1986977255 * change check
* layout: unfullscreen on toggle into tiled fullscreenVaxry2024-03-101-0/+5
| | | | fixes a bug where the tiled window would be on top
* dwindle: preserve fs state on switchWindowsVaxry2024-03-101-4/+15
| | | | fixes #2842
* windowrules: Make min/maxsize rules dynamic (#4775)Epilepsy Gatherings2024-03-081-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * rebase * simplify and remove prop * Stuff - add back win prop - change minsize defaults - change request formatting for setprop * style fix * remove empty line * change defaults * redo string to vec * remove redundant parsing * change to vec * support commas * remove static rules * take out garbage * format * don't allow commas and resize on setprop * use isNumber
* layout: Fix toggling fullscreen special workspace on different monitor (#5000)thejch2024-03-072-0/+43
| | | | | | | * fix toggling fullscreen special ws on different monitor * add for dwindle * fix change regular workspace when special fullscreen
* master: change active monitor when moving windows around (#5001)thejch2024-03-071-0/+2
|
* input: fix window move stutter by introducing additional checks for low-hz ↵bvr-yr2024-03-062-5/+26
| | | | | | | | | | | monitors (#4553) * resize-limiter: add additional check for low-hz monitors * simplify checker * add comment * rename variable
* layout: warp the cursor when focusing windows (#4982)Junxuan Liao2024-03-051-0/+1
| | | | | Similar to the `focuswindow` dispatcher, when focusing a window with wlr-foreign-toplevel-management, the cursor should be warped. Otherwise, the focus is lost immediately after the cursor moves.
* keybinds: Allow fullscreen/maximize in special workspace (#4921)thejch2024-03-042-5/+6
| | | | | | | | | | | | | | | * allow fullscreen/maximize in special workspace * remove duplicate code * hide top layer * fix special fullscreen deco * edit * fix fade top layer when toggle special * remove double render
* config: improve config value infrastructureVaxry2024-03-033-155/+156
|
* master: Fix animate resize (#4942)thejch2024-03-031-2/+2
| | | | | * fix master animate resize * fix some other pointers