summaryrefslogtreecommitdiff
path: root/src/layout/DwindleLayout.cpp
Commit message (Collapse)AuthorAgeFilesLines
* feat: Add css style gaps (#4723)Dashie2024-02-211-6/+8
|
* Migrate the config to hyprlang (#4656)Vaxry2024-02-181-50/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Migrate to hyprlang * pop up errors * fix swapped args * Meson & Nix: build with hyprlang * CI: add hyprlang to setup action * add infra for plugin stuff * fix hyprctl getoption * fix hyprctl getoption with json * format * fix post parse logic * fix autogen config * oops missed exec-once * fmt * fix ws rules * require 0.3.0 for hyprlang * nix: flaek * minor type fixes * fix cfg usages in swipe * use cvarlist for ws rules * fix throw in addPluginConfigVar * Nix: update hyprlang * minor fixes * fix disableLogs * mention hyprlang docs * bump hyprlang dep in cmake * Meson: bump min hyprlang version Nix: update hyprlang * minor fix * Nix: update meson patch --------- Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
* dwindle: add swapsplit dispatcher (#4702)Niklas Haas2024-02-141-0/+16
| | | | | | This is distinct from `swapwindow` in that it allows swapping the entire tree node with its neighbour. Fixes: https://github.com/hyprwm/Hyprland/issues/4701
* dwindle: round wbox before settingvaxerski2024-02-141-5/+10
|
* input: focus window on mouse down on decoration (#4514)MightyPlaza2024-02-041-2/+2
| | | Also unifies vectorToWindow funcs
* dwindle: avoid sending negative sizes to wlrVaxry2024-02-021-4/+4
| | | | fixes #4591
* dwindle: fix windows being created at incorrect position when cursor is over ↵rszyma2024-01-261-31/+52
| | | | | | | | | | | reserved area (#4520) * fix: smart_split not working correctly when creating a window with cursor over reserved area * use getClosestNodeOnWorkspace instead of getFirstNodeOnWorkspace when hovering over reserved area * optimize `getClosestNodeOnWorkspace` * remove unused methods
* layout: save float props before setting fs state (#4537)bvr-yr2024-01-261-8/+8
| | | fixes #4388
* layout: update rules before applying fullscreen nodes in layoutsvaxerski2024-01-021-1/+4
|
* internal: Unify input handling on decorations (#4280)dranull2023-12-281-10/+2
| | | | | | | * Unify input handling on decorations * Make input methods private * Optional data
* dwindle: Use window->middle() when cursor is on reserved area (#4253)dranull2023-12-261-7/+8
|
* internal: nuke CWindow::m_bMappedX11Vaxry2023-12-171-1/+1
| | | | it's useless. m_bIsMapped is the same.
* internal: Remake borders as window decorations (#4104)Vaxry2023-12-101-10/+6
|
* decorations: Decoration Positioner (#3800)Vaxry2023-11-111-4/+4
|
* layout: round window boxes after special scale factorVaxry2023-11-051-3/+6
| | | | fixes #3761 again
* layout: fix missed setWindowSize in no_gaps_when_only node applyVaxry2023-11-041-0/+2
| | | | fixes #3758
* dwindle: move to CBox for expressing nodesVaxry2023-11-041-83/+67
|
* Decos: Window decoration flags, shadow improvements (#3739)Vaxry2023-11-041-1/+1
|
* layout: better storage for no fullscreen checks varvaxerski2023-11-031-9/+10
| | | | fixes #3731
* layout: avoid redundant size sets on new fullscreenVaxry2023-11-011-1/+4
|
* internal: create canBeGroupedInto() (#3693)MightyPlaza2023-10-301-9/+2
| | | | | | | modified: src/Window.cpp modified: src/Window.hpp modified: src/layout/DwindleLayout.cpp modified: src/layout/MasterLayout.cpp modified: src/render/decorations/CHyprGroupBarDecoration.cpp
* input: handle mouse on decorations (#3560)MightyPlaza2023-10-291-12/+15
|
* groups: create group and groupbar config sections (#3522)MightyPlaza2023-10-101-1/+1
| | | | | | | | | | | | | | | | | | | | * config: create group section modified: src/Compositor.cpp modified: src/config/ConfigManager.cpp modified: src/layout/DwindleLayout.cpp modified: src/layout/MasterLayout.cpp modified: src/managers/KeybindManager.cpp modified: src/managers/input/InputManager.cpp modified: src/render/decorations/CHyprGroupBarDecoration.cpp * separate group border and groupbar colors modified: src/Compositor.cpp modified: src/config/ConfigManager.cpp modified: src/render/decorations/CHyprGroupBarDecoration.cpp * add new line modified: config/ConfigManager.cpp
* dwindle: Avoid rounding errors in window position (#3524)Michał Lewandowski2023-10-091-9/+8
| | | | | | | * Avoid rounding errors in window position * Fix naming scheme * Fix unwanted window movement
* layout: don't discard fullscreen on new tilingvaxerski2023-09-281-9/+2
|
* windowrules: add rule `group` to map windows grouped (#3279)memchr2023-09-221-4/+13
| | | | | * windows: add rule group to map windows grouped * group rule: use `invade` to force open a window in a locked group
* keybinds: implement pushactivetobottom dispacher (#3217)alaricljs2023-09-211-1/+1
| | | Co-authored-by: Leeman <lstrout@enlj.com>
* logging: implement std::formatter for some types (#3380)memchr2023-09-201-3/+4
|
* dwindle: fix moving windows on specialvaxerski2023-09-141-2/+4
|
* refactor: flatten nesting `if`s in layout window creation method (#3294)memchr2023-09-141-25/+24
|
* dwindle: fix: don't merge groups when moving window (#3302)memchr2023-09-141-2/+2
|
* layout: add direction parameter to onWindowCreated and friends (#3269)memchr2023-09-131-9/+12
| | | | | | | | | | | | | | | | | | * feat(layout): add direction parameter to onWindowCreated and friends In addition: - Implement directional moveWindowOutOfGroup for `movewindoworgroup` when using dwindle layout. (augmentation of #3006) - Replace `DWindleLayout::OneTimeFocus` with `IHyprLayout::eDirection`. - Slight formatting change (clang-format). * fix: nullptr dereference in dwindle window creation * refactor: generalized eDirection * refactor: eliminate DIRECTION_NONE * Update IHyprLayout.hpp
* fix(layout): remove `focusWindow` calls from `onWindowCreatedTiling` (#3233)memchr2023-09-101-1/+0
|
* internal: Formatter rework (#3186)Vaxry2023-09-061-3/+3
|
* dwindle: add proper movement for window move bindsvaxerski2023-09-041-5/+40
| | | | ditches the "movewindow = swapwindow" mechanism. Fixes #2804
* decos: groupbar mouse interaction (#3102)MightyPlaza2023-08-301-16/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * allow groupbar clicking modified: src/Window.cpp modified: src/Window.hpp modified: src/managers/input/InputManager.cpp modified: src/render/decorations/CHyprGroupBarDecoration.cpp modified: src/render/decorations/CHyprGroupBarDecoration.hpp * remove setting pos inside insertWindowToGroup() modified: src/Window.cpp modified: src/layout/DwindleLayout.cpp modified: src/layout/MasterLayout.cpp modified: src/managers/KeybindManager.cpp * add group window by index and group size functions modified: src/Window.cpp modified: src/Window.hpp modified: src/managers/input/InputManager.cpp * allow dragging into groupbar modified: src/Window.cpp modified: src/layout/DwindleLayout.cpp modified: src/layout/MasterLayout.cpp * allow dragging from groupbar modified: src/managers/KeybindManager.cpp * try groupbar clicking before border resize modified: src/managers/input/InputManager.cpp * block grabbing groupbar on floating (crash) remove later when crashing is fixed modified: src/managers/KeybindManager.cpp * remove redundant { } modified: src/layout/DwindleLayout.cpp modified: src/layout/MasterLayout.cpp * implement getWindowDecorationBox() modified: src/Window.cpp modified: src/Window.hpp modified: src/layout/DwindleLayout.cpp modified: src/layout/MasterLayout.cpp modified: src/managers/KeybindManager.cpp modified: src/managers/input/InputManager.cpp modified: src/render/decorations/CHyprDropShadowDecoration.cpp modified: src/render/decorations/CHyprGroupBarDecoration.cpp modified: src/render/decorations/IHyprWindowDecoration.cpp modified: src/render/decorations/IHyprWindowDecoration.hpp * fix crash when moveoutofgroup in floating windows also removes dragging from floating windows limitation modified: src/layout/IHyprLayout.cpp modified: src/managers/KeybindManager.cpp * use CRegion in getWindowDecorationBox() modified: src/helpers/Region.cpp modified: src/helpers/Region.hpp modified: src/layout/DwindleLayout.cpp modified: src/layout/MasterLayout.cpp modified: src/managers/KeybindManager.cpp modified: src/managers/input/InputManager.cpp modified: src/render/decorations/IHyprWindowDecoration.cpp modified: src/render/decorations/IHyprWindowDecoration.hpp * add groupbar scrolling modified: src/config/ConfigManager.cpp modified: src/managers/input/InputManager.cpp * change name to getWindowDecorationRegion() modified: src/layout/DwindleLayout.cpp modified: src/layout/MasterLayout.cpp modified: src/managers/KeybindManager.cpp modified: src/managers/input/InputManager.cpp modified: src/render/decorations/IHyprWindowDecoration.cpp modified: src/render/decorations/IHyprWindowDecoration.hpp * make dragging from group less hacky for floating modified: src/managers/KeybindManager.cpp
* dwindle: use smart on display borders (#2897)MightyPlaza2023-08-211-4/+4
|
* renderer: Border improvements (#2986)MightyPlaza2023-08-171-32/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * simplify getting border size modified: src/Window.cpp modified: src/Window.hpp modified: src/layout/DwindleLayout.cpp modified: src/layout/MasterLayout.cpp modified: src/render/decorations/CHyprGroupBarDecoration.cpp * fix border damage and input box modified: src/Window.cpp modified: src/managers/AnimationManager.cpp * add border size in resize_on_border box modified: src/managers/input/InputManager.cpp * simplify border (fixes possible typo) modified: src/Window.cpp * use updateSpecialRenderData() modified: Window.cpp modified: Window.hpp modified: events/Windows.cpp modified: layout/DwindleLayout.cpp modified: layout/IHyprLayout.cpp modified: layout/MasterLayout.cpp modified: render/Renderer.cpp * update window workspace rule data on reload modified: src/config/ConfigManager.cpp * use rounding() modified: src/Window.cpp
* remove shadow no_gaps_when_only (#2956)MightyPlaza2023-08-121-0/+2
| | | | | | | modified: src/Window.hpp modified: src/config/ConfigManager.cpp modified: src/config/ConfigManager.hpp modified: src/layout/DwindleLayout.cpp modified: src/render/decorations/CHyprDropShadowDecoration.cpp
* dwindle: disallow togglesplit on fullscreenvaxerski2023-08-101-0/+3
|
* layout: no_border_when_only-improvements (#2791)MightyPlaza2023-07-241-11/+16
|
* add config option to enable/disable new intuitive resizing (#2774)end-42023-07-231-50/+109
| | | | | dwindle:smart_resizing = 1 by default == 1 then use new resizing else use old resizing
* render: Border fixes (#2781)MightyPlaza2023-07-231-0/+3
| | | | | | | * Window.cpp * layout * CHyprGroupBarDecoration.cpp
* windowrules: add border size rulevaxerski2023-07-181-0/+2
|
* Dwindle: Make resize more intuitive (#2681)Daniel Adolfsson2023-07-131-46/+48
| | | | | | | | | * improved resize * clang-format * rewrite * almost legacy behavior when using CORNER_NONE
* Add support for smart splitting (#2676)Daniel Adolfsson2023-07-111-2/+27
| | | | | | | * Add support for smart splitting * clang-format * smart_split default to 0, and make smart_split behave like preserve_split
* groupbar fixes (#2630)MightyPlaza2023-07-031-9/+24
| | | | | | | | | | | | | | Fixes multiple groupbar decoration issues: - togglegroup removes fullscreen to avoid to avoid weird state - fixes issue where a group had multiple windows with head = true - fixes issue where merging 2 groups would cause a window to have 2 groupbar decorations - fixes issue where merging a group with more than 1 window into another group would make windows have no groupbar decoration - fixes issue where ungrouping windows could just move them into another group on the same workspace --------- Co-authored-by: vaxerski <43317083+vaxerski@users.noreply.github.com>
* feat: add lockactivegroup dispatcher (#2478)memchr2023-06-091-1/+3
| | | | | | | | | | | | | | | | | * feat: add lockactivegroup dispatcher The `lockactivewindow` dispatcher takes `lock`, `toggle` or `unlock` as arguments. When a group is locked, no window or group can be added to it, nor can it be added to another group, but the `moveintogroup` and `moveoutofgroup` dispatches are not affected. Implementation details: the lock is implement via `SGroupData.locked` flag (defaults to false). The flag is only relevant to the group head, and upon the group head's succession, the flag will be passed down to the new head. Meanwhile, the old head's flag will be set to false. The flag is set to false when a group is dismissed. New condition checks have been added to the dwindle and master layout to check if target group is unlocked (and if the source is also a group and unlocked) before adding windows to the target group. * refactor: `lockactivegroup dispatcher code ordering
* layouts: make aware of borderSize propvaxerski2023-06-041-3/+4
|
* layouts: ignore direction forces on non-mapvaxerski2023-05-241-1/+1
|