vaxerski
981386d2ae
layout: allow changing float status of fullscreen windows
2023-08-28 22:55:52 +02:00
vaxerski
b8f38dcbd3
layout: allow drag on fullscreen windows
2023-08-28 22:54:23 +02:00
vaxerski
9dae8ece71
layout: use full box for visibility check of floating xdg
...
Fixes #3069 , if an xdg dialog pops up and is partially off bounds, just move it to the center.
2023-08-25 18:10:12 +02:00
Jeremy Huang
90c03e5bd2
master: layout resize makes the wrong size changes ( #3064 )
2023-08-24 11:57:30 +02:00
MightyPlaza
41d9b6f0d7
dwindle: use smart on display borders ( #2897 )
2023-08-21 20:57:55 +02:00
MightyPlaza
7155b4c266
renderer: Border improvements ( #2986 )
...
* 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
2023-08-17 10:13:19 +02:00
Dashie
19c4855afc
layout: Use refreshrate tick on all manual animations ( #2988 )
2023-08-16 10:56:48 +02:00
4986d74ef2
xwayland: fix use of xwayland coords in native spaces
2023-08-15 20:10:43 +02:00
kbtz
2b4537606f
master: fix always_center_master
( #2961 )
...
* master: fix always_center_master
* master: allow resizing single centered window
---------
Co-authored-by: kbtz <github@kbtz.dev>
2023-08-15 18:13:45 +02:00
MightyPlaza
4b568ae5f6
remove shadow no_gaps_when_only master ( #2958 )
...
* 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
2023-08-13 10:18:48 +02:00
MightyPlaza
739598717b
remove shadow no_gaps_when_only ( #2956 )
...
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
2023-08-12 23:37:55 +02:00
e4e8ae8f88
dwindle: disallow togglesplit on fullscreen
2023-08-10 22:01:34 +02:00
MightyPlaza
6295cbe9cb
keybinds: Keep aspect ratio ( #2907 )
2023-08-08 18:52:20 +02:00
261c3307f7
internal: cleanup headers in helpers/
2023-08-07 13:36:14 +02:00
MightyPlaza
b925f1b497
fix workspace change focus ( #2891 )
2023-08-05 20:53:13 +02:00
MightyPlaza
6db3c4ef5e
layout: no_border_when_only-improvements ( #2791 )
2023-07-24 12:13:40 +02:00
end-4
9845f99b60
add config option to enable/disable new intuitive resizing ( #2774 )
...
dwindle:smart_resizing = 1 by default
== 1 then use new resizing
else use old resizing
2023-07-23 15:50:09 +02:00
MightyPlaza
d3bba2489d
render: Border fixes ( #2781 )
...
* Window.cpp
* layout
* CHyprGroupBarDecoration.cpp
2023-07-23 15:49:49 +02:00
vaxerski
61dc0909ae
layout: use warp() instead of setValue()
2023-07-20 20:03:27 +02:00
outfoxxed
5cd5631fb2
Add bringWindowToTop function to IHyprLayout ( #2747 )
...
* Add bringWindowToTop function to IHyprLayout
* Rename `bringWindowToTop` to `requestFocusForWindow`
* Fix doc
2023-07-19 12:39:45 +02:00
vaxerski
2c7b2ad6ca
windowrules: add border size rule
2023-07-18 00:11:29 +02:00
MightyPlaza
b159634ef9
move/resize window ( #2706 )
2023-07-13 20:20:40 +02:00
Daniel Adolfsson
d3a644d81c
Dwindle: Make resize more intuitive ( #2681 )
...
* improved resize
* clang-format
* rewrite
* almost legacy behavior when using CORNER_NONE
2023-07-13 16:52:11 +02:00
Daniel Adolfsson
64e7d5345d
Add support for smart splitting ( #2676 )
...
* Add support for smart splitting
* clang-format
* smart_split default to 0, and make smart_split behave like preserve_split
2023-07-11 13:37:25 +02:00
vaxerski
6f91997f06
layout: improve time restraints in window drag
2023-07-04 11:49:24 +02:00
MightyPlaza
05047f60f4
groupbar fixes ( #2630 )
...
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>
2023-07-03 12:49:56 +02:00
vaxerski
6c28388420
layout: minor style fixes
2023-07-01 16:28:17 +02:00
vaxerski
e96fcb31f0
layout: set pseudo to float size in new window
2023-06-30 11:29:06 +02:00
0283c498d6
xwayland: fix minor force_zero_scaling bugs
2023-06-22 21:43:31 +02:00
memchr
bca3068db2
feat: add lockactivegroup dispatcher ( #2478 )
...
* 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
2023-06-09 23:44:18 +02:00
2629cfeeab
layouts: make aware of borderSize prop
2023-06-04 21:35:23 +02:00
vaxerski
1e3571eb5b
layout: don't reset to floating size on drag tiled
2023-05-29 18:05:41 +02:00
vaxerski
62e3953f5b
master: guard monitor in recalc
2023-05-26 13:41:52 +02:00
vaxerski
a4c120d608
layouts: ignore direction forces on non-map
2023-05-24 19:23:10 +02:00
vaxerski
eb1f832fce
decos: recalc on add
2023-05-23 14:26:38 +02:00
Dashie
a8541d5f64
Add split preselection ( #2240 )
2023-05-06 01:02:18 +01:00
jacekpoz
a663823af2
only ignore no_gaps_when_only when the workspace rule specifies a border ( #2217 )
...
Co-authored-by: jacekpoz <jacekpoz@cock.li>
2023-05-03 14:48:46 +01:00
levnikmyskin
c949173bc9
Added some workspace-specific rules ( #1986 )
...
* 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>
2023-05-01 22:28:27 +01:00
outfoxxed
849d657595
Window resizing for pseudotiled windows ( #2140 )
...
* Window resizing for pseudotiled windows
* Use `m_vRealSize` to determine scaled window size
2023-04-25 16:53:18 +01:00
vaxerski
bf27066fd7
IHyprLayout: add missing static modifiers to config vars
2023-04-25 16:53:01 +01:00
vaxerski
1f80154823
layouts: add missing static modifiers to config vars
2023-04-25 16:49:06 +01:00
vaxerski
8b3d8dc792
Format: use %lx for all addresses
2023-04-17 17:35:28 +01:00
Person1873
33d06fb0e5
Add ability to split master when only 1 additional window ( #2025 )
...
* 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>
2023-04-13 15:20:58 +01:00
vaxerski
bc4a51dbbb
internal: make togglefloat better visible on small size deltas
2023-04-06 19:45:59 +01:00
lisuke
dc78c58c77
fix: a fullscreen bug. ( #1821 ) ( #1831 )
2023-03-20 16:07:18 +00:00
Vaxry
788a8f7c13
internal: wrap wlr surfaces ( #1822 )
2023-03-20 15:00:58 +00:00
vaxerski
2ba5238b8e
groups: fix moving between displays
2023-03-18 16:30:29 +00:00
vaxerski
17deeb07ad
master: better cycle
2023-03-13 01:07:05 +00:00
a85a6fa6c8
Dwindle: Added default_split_ratio
2023-03-07 14:24:10 +00:00
hillyu
4f647a8e8b
fix mfact not applying to addmaster ( #1715 )
...
Co-authored-by: Hill <hillyu@live.com>
2023-03-06 09:03:49 +00:00
hillyu
7ce92f93ad
add mfact setting for master layout ( #1666 )
...
* add mfact setting for master layout
---------
Co-authored-by: Hill <hillyu@live.com>
2023-03-05 16:29:23 +00:00
vaxerski
fb45f8f2f9
crashReporter: remove inconsistent log from crash reports
2023-03-04 00:14:20 +00:00
vaxerski
7c5c7ced91
Convert reverse iterators to ranges
2023-03-01 14:06:52 +00:00
vaxerski
72fc309fb1
make window reserved area less stupid
2023-02-28 21:18:13 +00:00
Dashie
7187ea443e
Add option to disable/enable mouse window dragging animations ( #1658 )
2023-02-28 20:50:10 +00:00
Marcus Kellerman
492f36f7df
Added center orientation to master layout ( #1642 )
...
* 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.
2023-02-26 23:12:14 +00:00
vaxerski
2e21ad875b
fix cursor image on drag not resize
2023-02-26 23:08:20 +00:00
Mihai Fufezan
e302724847
use corner cursors on resize ( #1638 )
2023-02-26 03:56:23 +02:00
a66ef50469
added a lockgroups dispatcher
2023-02-21 12:13:41 +00:00
vaxerski
cd6640e890
unset hidden at grouped remove
2023-02-19 23:26:36 +00:00
Vaxry
e5a4c0c986
Group/Tab Rework ( #1580 )
2023-02-19 21:07:32 +00:00
Vaxry
1b56cc4e99
Added an Event Hook System ( #1578 )
...
* added an eventHookSystem
* Add all socket2 events to hooks
2023-02-19 20:54:53 +00:00
Ching Pei Yang
c92e0c05e4
Resize on border ( #1347 )
2023-02-18 22:35:31 +00:00
vaxerski
6b7e409f05
properly clamp size in dragging floating corners
2023-02-12 22:24:47 +00:00
Philipp Mildenberger
97e0f02621
Fix some issues with a lost focus of the maximized window after using 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
2023-02-11 13:00:05 +00:00
Philipp Mildenberger
42f4664022
Added support for layoutmsg params and added the param 'newfocus' for '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
2023-02-10 19:13:38 +00:00
vaxerski
6688421240
minor adjustments to xwayland positioning
2023-02-03 21:21:19 +00:00
eaf0fb14c9
reset layout-set render vars on floating
2023-01-31 12:15:40 +00:00
Jan Beich
f90ff8303b
Unbreak build with libc++ ( #1457 )
2023-01-31 00:03:23 +00:00
eriedaberrie
af37a3895f
fix: cursor changing on window move and resize ( #1371 )
...
* Just use grab cursor for everything
2023-01-27 11:31:56 +00:00
d5913a23ac
reset dragged window on failed begin
2023-01-20 16:30:30 +01:00
Maxim Baz
7729fa9ac9
master layout: remember size & pos of floating windows on fullscreen 1 ( #1374 )
2023-01-13 21:58:14 +01:00
85d1b06a79
clean draggedwindow in dragend
2023-01-02 12:06:06 +01:00
7f595ed0ca
support gradients in dwindle group colors
2022-12-31 16:23:56 +01:00
a91d0a374a
fix mouse resize on master orientations
2022-12-30 13:01:43 +01:00
b4ebc18367
remove main_mod
2022-12-28 19:52:12 +01:00
Maarten van Gompel
edcf4cd61d
fix for gap in master layout orientation right #1171 ( #1260 )
2022-12-20 22:24:36 +00:00
vaxerski
563835404f
remember master width on master close
2022-12-17 22:53:03 +00:00
Julian Schuler
2daabfa0e9
Add 'exact' option for 'splitratio' ( #1245 )
...
* Simplify getPlusMinusKeywordResult()
* Add an 'exact' option for 'splitratio'
2022-12-17 22:37:44 +00:00
Julian Schuler
11ba6afdd3
Fix cycleprev bug introduced in 46891b12cf
( #1213 ) ( #1242 )
2022-12-17 14:37:10 +00:00
vaxerski
2076905d6e
remember size and pos on fullscreen 1
2022-12-17 12:14:43 +00:00
vaxerski
deb8d3d82e
ignore self in candidate floating
2022-12-16 20:07:44 +00:00
Vaxry
98a4fa2b0d
Added clang format ( #1239 )
...
* clang-format stuff and format files
2022-12-16 17:17:31 +00:00
vaxerski
20899b597e
log more in group creation
2022-12-16 00:22:23 +00:00
vaxerski
1a9ee959dd
static-ize master opt
2022-12-12 14:37:49 +00:00
Maarten van Gompel
46891b12cf
Master layout: lose or inherit fullscreen on deliberate window switching ( #1213 )
...
* 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.
2022-12-12 14:34:52 +00:00
vaxerski
0c1bec023f
unset cursor image on end drag if it gets destroyed
2022-12-12 14:32:23 +00:00
vaxerski
06e6c6021e
fix memory read-after-free in master layout
2022-12-12 14:18:43 +00:00
Maarten van Gompel
6381b6474f
Implement orientation (placement of master area) for master layout ( #1202 )
...
* 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'
2022-12-10 21:59:16 +00:00
vaxerski
bf78dcecf0
add changefloatingmode event
2022-12-09 18:51:44 +00:00
vaxerski
fd43d2bea7
fix drag resizing on special ws-es
2022-12-09 17:08:04 +00:00
vaxerski
b9812f8bc0
use anim callbacks and don't spam config resets in drag
2022-12-09 15:00:58 +00:00
vaxerski
6e3bd440ba
do not reject drags on visible windows over fullscreen
2022-12-08 17:45:25 +00:00
vaxerski
e1d7a13333
unset fullscreen in onWindowRemoved
2022-12-07 18:57:02 +00:00
vaxerski
bf5844d607
add failsafe for dwindle windows
2022-12-07 18:57:02 +00:00
Eric_Luo
afe12dc90b
Fix a compiler warning ( #1124 )
...
Co-authored-by: hnboy <hnboy@users.noreply.github.com>
2022-11-28 19:04:24 +00:00
vaxerski
0a302901d2
Added handling more special workspaces
2022-11-27 22:42:22 +00:00
vaxerski
49063f949d
find floating windows below closed one
2022-11-27 12:11:45 +00:00
vaxerski
493fc00953
fix decorations missing after no_gaps_when_only toggle floating
2022-11-26 18:48:16 +00:00
vaxerski
75b7e661e7
damage windows after switch
2022-11-25 19:52:23 +00:00
vaxerski
e15a9f3d7d
damage monitor on group switch
2022-11-22 23:47:00 +00:00
vaxerski
d504c1e5ab
fix master resizes all
2022-11-21 18:14:25 +00:00
vaxerski
f8b9138383
make focus/swap master layoutmsgs two-way
2022-11-20 11:55:50 +00:00
vaxerski
5530cf6e79
respect no_gaps_when_only in fullscreen 1
2022-11-19 17:35:37 +00:00
d5eafe1926
set cursor to hand1 when moving a window
2022-11-15 10:39:05 +00:00
vaxerski
884fc4f89c
fix master window finding on closed
2022-11-13 14:31:12 +00:00
vaxerski
0208dff574
fix invalid master slave pos calc on y != 0
2022-11-10 19:39:16 +00:00
vaxerski
34b145ee65
Added resizing individual master windows
2022-11-10 12:05:22 +00:00
vaxerski
7ff1fd9d69
use goal values in changeWindowFloatingMode
2022-11-09 22:02:02 +00:00
vaxerski
1cf829c889
minor loose focus fixes
2022-11-08 20:28:41 +00:00
c545ab4993
Added multiple master layoutmsgs
2022-11-08 12:39:52 +00:00
vaxerski
6553fb5a40
fix fullscreen maximize size
2022-11-05 18:25:32 +00:00
vaxerski
206360177f
Multiple animation optimization and xwayland wine fixes
2022-11-04 15:56:31 +00:00
vaxerski
349afa0e7a
guard header windows in layout messages
2022-11-03 22:55:44 +00:00
abbadanor
61b950d942
Add focusmaster dispatcher ( #942 )
...
* added focusmaster dispatcher
* format
Co-authored-by: Adam Nord <adam.nord@abbgymnasiet.se>
Co-authored-by: vaxerski <43317083+vaxerski@users.noreply.github.com>
2022-11-02 10:15:11 +00:00
vaxerski
077c1491a8
respect nofocus in candidate searching
2022-10-24 12:28:41 +01:00
vaxerski
c04563734e
Rework candidate finding on close window
2022-10-24 12:25:36 +01:00
vaxerski
da8be82c9a
Fix self-noding in changeWindowFloatingMode
2022-10-19 21:32:30 +01:00
vaxerski
8ffd244ef6
fix animate_manual_resizes with moves
2022-10-19 21:17:49 +01:00
vaxerski
34cd8b125a
rework focus system to be more safe and faster
2022-10-14 20:46:32 +01:00
vaxerski
ff5843bd85
anchor to proper quad in floating resize
2022-10-03 22:41:12 +01:00
Vaxry
45fe185cb9
Merge pull request #736 from Dickby/fix_bordersize_again
...
Scale the border size, revert the window scaling according to border
2022-09-29 22:01:06 +01:00
vaxerski
da40bf823f
apply new node data to all group windows on close
2022-09-29 19:46:33 +01:00
vaxerski
caeb0636fa
fix crash on dwindle splitratio alter on single group
2022-09-29 19:41:49 +01:00
Felix Dick
a1319e5110
Merge branch 'main' into fix_bordersize_again
2022-09-29 01:42:28 +02:00
Felix Dick
11ee78f88b
Use double literals, don't cast a integer literal to double.
2022-09-28 20:08:41 +02:00
Felix Dick
87afc8c250
Replace clamp with max if there is no upper bound.
2022-09-26 21:10:24 +02:00
Felix Dick
cd2b2c4fba
Scale the border size, revert the window scaling according to border
2022-09-26 17:38:08 +02:00
Felix Dick
bf3f519eb7
Remove trailing whitespace.
2022-09-25 20:07:48 +02:00
Dickby
e476382d08
scale border size in dwindle layout window sizes.
2022-09-25 18:12:42 +02:00
Dickby
c885afcbc6
Scale border size in calculations of windows
2022-09-25 12:42:39 +02:00
Dickby
bccc81d306
Fixing my last change
...
It wasn't a problem with the bug i tried to fix.
But there would be a problem if some function would dereference pPreviousGroupMember from the node that was PHEAD->pNextGroupMember.
Please don't be mean!
2022-09-23 19:13:05 +02:00
Vaxry
718de0d9fa
Merge pull request #715 from Dickby/main
...
fix crash
2022-09-23 17:05:04 +01:00
fd6116c0cd
style
2022-09-23 17:01:27 +01:00
Dickby
00b16888bf
style fix
2022-09-23 17:59:33 +02:00
695411f1bd
don't decorate on only no gaps
2022-09-23 16:47:58 +01:00
Dickby
f9d8b3096a
fix crash
...
Fixes #711
2022-09-23 17:01:46 +02:00
7f3750bd75
disable enabling groups on fullscreen windows
2022-09-20 18:08:10 +01:00
7a9423c782
better dwindle swapping with groups
2022-09-20 18:04:39 +01:00
2dd1661aec
fix groups with fullscreen
2022-09-20 12:17:34 +01:00
5b6c8d5b0f
fix misc fullscreen issues
2022-09-20 09:55:25 +01:00
c24b45671a
mouse binds overhaul
2022-09-19 19:04:48 +01:00
cf32d28082
fix groupbar being wonk on scaled
2022-09-18 12:13:16 +01:00
5131a4acaf
fix special fullscreen
2022-09-17 15:07:03 +01:00
fa2d81b649
fix animation issues with workspace silent
2022-09-16 21:17:03 +01:00
vaxerski
037d4ed422
handle multi-ws swaps in layouts
2022-09-14 17:30:16 +02:00
vaxerski
9f82278d65
simplify dwindle swap
2022-09-14 17:24:45 +02:00
vaxerski
a96acc8fa4
only check for visible on xdg
2022-09-13 22:23:48 +02:00
vaxerski
7d4f0a3199
verify visibility of new geom in floating creation
2022-09-13 12:29:56 +02:00
vaxerski
d94fe3d063
added window pinning
2022-09-10 13:11:02 +02:00