summaryrefslogtreecommitdiff
path: root/src/layout/MasterLayout.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* layout: fix various rounding errorsVaxry2023-11-061-3/+6
| | | | maybe finally will end #3761
* 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
* Internal: Hyprland box implementation (#3755)Vaxry2023-11-041-2/+2
| | | | | | | * box impl * remove unused operators * missed applyfromwlr
* Decos: Window decoration flags, shadow improvements (#3739)Vaxry2023-11-041-1/+1
|
* Master: fix drop_at_cursor when there are only two windows (#3734)thejch2023-11-031-22/+55
| | | | | * make drop_at_cursor work when dragging into a one-window workspace * fix drop_at_cursor when new_is_master is enabled
* layout: better storage for no fullscreen checks varvaxerski2023-11-031-10/+11
| | | | fixes #3731
* master: fix moving window between monitors (#3721)thejch2023-11-021-1/+1
|
* layout: avoid redundant size sets on new fullscreenVaxry2023-11-011-2/+5
|
* internal: create canBeGroupedInto() (#3693)MightyPlaza2023-10-301-8/+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
|
* master: fix movewindow across monitors (#3628)thejch2023-10-201-1/+10
|
* master: fix resizing wrong window behind in special workspace (#3591)thejch2023-10-171-1/+2
|
* 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
* master: fix drop_at_cursor on workspace 2 (#3512)Jeremy Huang2023-10-061-0/+2
|
* master: add option to drag and drop windows at cursor position (#3465)Jeremy Huang2023-10-031-0/+29
| | | | | * add option to drag and drop a window at cursor position * use getWindowIdealBoundingBoxIgnoreReserved
* layout: don't discard fullscreen on new tilingvaxerski2023-09-281-7/+0
|
* windowrules: add rule `group` to map windows grouped (#3279)memchr2023-09-221-4/+11
| | | | | * 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-2/+3
|
* master: partially revert 0e64dd2e and fix the animation (#3327)Jeremy Huang2023-09-151-1/+5
|
* master: Add mfact dispatcher (#3298)Jeremy Huang2023-09-151-0/+14
| | | | | | | | | * add mfact dispatcher * limit mfact to between 0.05 and 0.95 * add try catch block for stof * change log to err
* refactor: flatten nesting `if`s in layout window creation method (#3294)memchr2023-09-141-36/+36
|
* master: respect the resizing animation option in master layout (#3300)Jeremy Huang2023-09-141-5/+2
|
* master: Fix the wrong resize speed in master layout center orientation (#3289)Jeremy Huang2023-09-131-40/+36
| | | | | | | * rebase * change isStackVertical variable to make it more readable * fix some code getting unnecessarily repeating in a loop
* layout: add direction parameter to onWindowCreated and friends (#3269)memchr2023-09-131-25/+23
| | | | | | | | | | | | | | | | | | * 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
* refactor: utilize 'middle()' method for window/montior center (#3253)memchr2023-09-111-1/+1
|
* master: Add smart resizing option for master layout (#3210)Jeremy Huang2023-09-101-13/+165
| | | | | | | | | | | | | * add smart resizing for master layout * fix smart resizing workspace check * master layout fix smart resize when at max size * change resizing for center orientation so it doesnt use all nodes * master layout resizing, simplify code for calculating total height and weight * remove the redundant smart resizing check
* fix(layout): remove `focusWindow` calls from `onWindowCreatedTiling` (#3233)memchr2023-09-101-1/+0
|
* internal: Formatter rework (#3186)Vaxry2023-09-061-2/+2
|
* master: Add orientationcycle command on MasterLayout (#3128)shadowmax312023-09-041-24/+53
|
* dwindle: add proper movement for window move bindsvaxerski2023-09-041-0/+9
| | | | ditches the "movewindow = swapwindow" mechanism. Fixes #2804
* decos: groupbar mouse interaction (#3102)MightyPlaza2023-08-301-43/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* master: layout resize makes the wrong size changes (#3064)Jeremy Huang2023-08-241-2/+2
|
* renderer: Border improvements (#2986)MightyPlaza2023-08-171-30/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* master: fix `always_center_master` (#2961)kbtz2023-08-151-142/+133
| | | | | | | | | * master: fix always_center_master * master: allow resizing single centered window --------- Co-authored-by: kbtz <github@kbtz.dev>
* remove shadow no_gaps_when_only master (#2958)MightyPlaza2023-08-131-0/+2
| | | | | | | | | | | | | | * remove shadow no_gaps_when_only 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 * add master modified: src/layout/MasterLayout.cpp * fix wrong modified: src/layout/MasterLayout.cpp
* layout: no_border_when_only-improvements (#2791)MightyPlaza2023-07-241-10/+15
|
* render: Border fixes (#2781)MightyPlaza2023-07-231-1/+3
| | | | | | | * Window.cpp * layout * CHyprGroupBarDecoration.cpp
* windowrules: add border size rulevaxerski2023-07-181-1/+3
|
* Dwindle: Make resize more intuitive (#2681)Daniel Adolfsson2023-07-131-2/+2
| | | | | | | | | * improved resize * clang-format * rewrite * almost legacy behavior when using CORNER_NONE
* groupbar fixes (#2630)MightyPlaza2023-07-031-8/+26
| | | | | | | | | | | | | | 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-4/+5
|
* master: guard monitor in recalcvaxerski2023-05-261-1/+5
|
* layouts: ignore direction forces on non-mapvaxerski2023-05-241-1/+1
|
* only ignore no_gaps_when_only when the workspace rule specifies a border (#2217)jacekpoz2023-05-031-1/+1
| | | Co-authored-by: jacekpoz <jacekpoz@cock.li>
* Added some workspace-specific rules (#1986)levnikmyskin2023-05-011-16/+24
| | | | | | | | | | | | | | | | | | | | | | * added some workspace-specific rules * added some worskpace-specific rules, with windowrule like syntax * monitor is not mandatory anymore * pointers to config are now static * fixed optional WorkspaceRule fields * Windows can now specify border size * removed CHyprOpenGLImpl::renderBorder borderSize default value * stuff --------- Co-authored-by: Alessio Molinari <alessiomolinari@gmail.com> Co-authored-by: vaxerski <43317083+vaxerski@users.noreply.github.com>
* layouts: add missing static modifiers to config varsvaxerski2023-04-251-8/+8
|
* Format: use %lx for all addressesvaxerski2023-04-171-3/+3
|