summaryrefslogtreecommitdiff
path: root/src/layout/MasterLayout.cpp
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* Add ability to split master when only 1 additional window (#2025)Person18732023-04-131-25/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * fix: enable master split less than 2 windows added a config flag "master:allow_small_split" added config to minimum windows check. TODO: check that no bug added (remove all masters?) * IMPL:FIX: multiple master windows full width Implemented the ability to have multiple master windows filling the full monitor width in master mode. this is controlled by the config option master:allow_small_split (true/false) this defaults to false as it was the original behaviour before this patch * BUGFIX: corrected issue with blanks re: addmaster FIX 1: Treat ORIENTATION_CENTER the same as ORIENTATION_LEFT unless there are enough STACK_WINDOWS to fill both wings. FIX 2: enforced last window always set as master in MasterLayout::CHyperMasterLayout::calculateWorkspace(); FIX 3: fix 2, also fixed focus issues previously noted. * Changes requested by vaxerski changed how we access config variables (by reference not value) fixed a regression previously missed prior to requested changes. I had somehow broken the very functionality i meant to add. * added static keyword to config variables * removed superfluous static tags I made a mistake with making too many variables static. this made them only evaluate once per runtime breaking things majorly. My appologies. I haven't touched C++ in nearly 20 years. * remove annoying comment --------- Co-authored-by: vaxerski <43317083+vaxerski@users.noreply.github.com>
* fix: a fullscreen bug. (#1821) (#1831)lisuke2023-03-201-13/+15
|
* master: better cyclevaxerski2023-03-131-58/+11
|
* fix mfact not applying to addmaster (#1715)hillyu2023-03-061-1/+2
| | | Co-authored-by: Hill <hillyu@live.com>
* add mfact setting for master layout (#1666)hillyu2023-03-051-2/+3
| | | | | | | * add mfact setting for master layout --------- Co-authored-by: Hill <hillyu@live.com>
* Convert reverse iterators to rangesvaxerski2023-03-011-13/+14
|
* make window reserved area less stupidvaxerski2023-02-281-23/+26
|
* Added center orientation to master layout (#1642)Marcus Kellerman2023-02-261-13/+95
| | | | | | | * Added center orientation to master layout to improve experience on ultra widescreen monitors. * Added support for orientationcenter layout message for master layout * Added ability to optionally always center master window when in centered master mode.
* added a lockgroups dispatchervaxerski2023-02-211-2/+2
|
* Group/Tab Rework (#1580)Vaxry2023-02-191-0/+25
|
* Added an Event Hook System (#1578)Vaxry2023-02-191-1/+2
| | | | | * added an eventHookSystem * Add all socket2 events to hooks
* Fix some issues with a lost focus of the maximized window after using ↵Philipp Mildenberger2023-02-111-23/+29
| | | | | | | swapwithmaster in fullscreen mode (#1524) * Fix some issues with a lost focus of the maximized window after using swapwithmaster in fullscreen mode * Keep current fullscreen mode when `prepareNewFocus` is executed
* Added support for layoutmsg params and added the param 'newfocus' for ↵Philipp Mildenberger2023-02-101-17/+45
| | | | | 'swapwithmaster' and 'focusmaster' (#1522) * Added support for layoutmsg params and added the param 'newfocus' for 'swapwithmaster' and 'focusmaster', which lets the user decide what the new focused window should be
* reset layout-set render vars on floatingvaxerski2023-01-311-0/+4
|
* master layout: remember size & pos of floating windows on fullscreen 1 (#1374)Maxim Baz2023-01-131-4/+6
|
* fix mouse resize on master orientationsvaxerski2022-12-301-10/+28
|
* fix for gap in master layout orientation right #1171 (#1260)Maarten van Gompel2022-12-201-2/+2
|
* remember master width on master closevaxerski2022-12-171-1/+2
|
* Add 'exact' option for 'splitratio' (#1245)Julian Schuler2022-12-171-2/+3
| | | | | * Simplify getPlusMinusKeywordResult() * Add an 'exact' option for 'splitratio'
* Fix cycleprev bug introduced in 46891b12cf (#1213) (#1242)Julian Schuler2022-12-171-1/+1
|
* Added clang format (#1239)Vaxry2022-12-161-89/+89
| | | * clang-format stuff and format files
* static-ize master optvaxerski2022-12-121-1/+1
|
* Master layout: lose or inherit fullscreen on deliberate window switching (#1213)Maarten van Gompel2022-12-121-6/+57
| | | | | | | | * Master layout: Lose fullscreen status when deliberately switching away from a fullscreen window * Master layout: implemented inherit_fullscreen config parameter When set, if you are on a fullscreen window and you cycle to the next, swap master, etc, it will be automatically fullscreened.
* fix memory read-after-free in master layoutvaxerski2022-12-121-2/+4
|
* Implement orientation (placement of master area) for master layout (#1202)Maarten van Gompel2022-12-101-17/+156
| | | | | | | | | * Implemented choosing placement of master area (#1059) This implement a per workspace 'orientation' that can be set to left, right, top or bottom. Reflecting placement of the master area. Left (default) and right are horizontal layouts, top and bottom produce vertical layouts. Orientation can be switched with: 'hyprctl dispatch layoutmsg orientationleft'
* Added handling more special workspacesvaxerski2022-11-271-7/+7
|
* fix decorations missing after no_gaps_when_only toggle floatingvaxerski2022-11-261-0/+4
|
* damage windows after switchvaxerski2022-11-251-0/+3
|
* fix master resizes allvaxerski2022-11-211-1/+1
|
* make focus/swap master layoutmsgs two-wayvaxerski2022-11-201-8/+25
|
* respect no_gaps_when_only in fullscreen 1vaxerski2022-11-191-1/+1
|
* fix master window finding on closedvaxerski2022-11-131-1/+1
|
* fix invalid master slave pos calc on y != 0vaxerski2022-11-101-1/+1
|
* Added resizing individual master windowsvaxerski2022-11-101-16/+40
|
* Added multiple master layoutmsgsvaxerski2022-11-081-10/+97
|
* fix fullscreen maximize sizevaxerski2022-11-051-6/+0
|
* Multiple animation optimization and xwayland wine fixesvaxerski2022-11-041-0/+6
|
* guard header windows in layout messagesvaxerski2022-11-031-0/+13
|
* Add focusmaster dispatcher (#942)abbadanor2022-11-021-1/+10
| | | | | | | | * added focusmaster dispatcher * format Co-authored-by: Adam Nord <adam.nord@abbgymnasiet.se> Co-authored-by: vaxerski <43317083+vaxerski@users.noreply.github.com>
* rework focus system to be more safe and fastervaxerski2022-10-141-1/+1
|
* Merge branch 'main' into fix_bordersize_againFelix Dick2022-09-291-1/+1
|\