Commit graph

404 commits

Author SHA1 Message Date
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
vaxerski
64be57b780 fix group decos on added windows 2022-09-07 20:36:39 +02:00
vaxerski
789eedd115 fix a minor bug with no gaps when only and groups 2022-09-06 19:59:59 +02:00
vaxerski
4a8274e5f0 fix dwindle no gaps when only when dissolving a group 2022-09-06 18:12:41 +02:00
vaxerski
fbd2b4799d Fix some more crimes against humanity 2022-09-03 22:49:52 +02:00
vaxerski
56203b1757 fix no_gaps_when_only with a group 2022-09-01 19:46:38 +02:00
vaxerski
21a1b62b6a remove tiling node when invalid 2022-08-31 11:14:33 +02:00
vaxerski
179562b646 fix dwindle groupbars 2022-08-29 19:52:35 +02:00
vaxerski
d53b0a6491 optimize options in dwindle 2022-08-26 19:07:33 +02:00
vaxerski
00ef40dda1 added swapnext and swapprev for master 2022-08-24 21:50:48 +02:00
vaxerski
ffaf14c19e minor damage fixes 2022-08-24 13:44:48 +02:00
vaxerski
48c9e9d83d damage on force warp resize 2022-08-23 15:08:15 +02:00
Darksome
f7f3446882 CCompositor::moveWindowToWorkspace -> CWindow::moveToWorkspace 2022-08-21 18:01:26 +03:00
xDarksome
0f25f3aee3
Merge branch 'hyprwm:main' into main 2022-08-21 16:03:51 +03:00
vaxerski
185f93ae64 fix dwindle active for splits 2022-08-20 17:59:15 +02:00
Darksome
37e1450a4d Impl CCompositor::moveWindowToWorkspace 2022-08-20 13:25:56 +03:00
c2a3896cc9 added dwindle:use_active_for_splits 2022-08-19 22:03:41 +02:00
Darksome
844c33c980 Add mapwindow, unmapwindow and movewindow IPC events 2022-08-18 22:23:28 +03:00
cd9c85a150 never animate moving floating windows 2022-08-16 22:40:16 +02:00
bbc6b5d5e0 added misc:animate_manual_resizes 2022-08-16 21:56:54 +02:00
a59641096c ignore dwindle reload on full window null 2022-08-16 21:32:12 +02:00
c6de4ee4b7 more checks in fullscreen event 2022-08-16 21:30:53 +02:00
bec7501365 fix borders on no_gaps_when_only 2022-08-16 16:19:52 +02:00
d47bfe6af1 remove unused fixXWaylandWindowsOnWorkspace 2022-08-15 00:34:39 +02:00
28867758c4 better fix the last fix 2022-08-14 16:39:56 +02:00
214c2c7b1c fix groups not updating size on head change 2022-08-13 10:08:35 +02:00
aba63a7f96 disallow nested groups creation 2022-08-11 19:56:29 +02:00
c319a2aba9 Completely rewrote Dwindle group code 2022-08-11 19:29:39 +02:00
862722412f handle fullscreen in dwindle groups better 2022-08-09 18:37:50 +02:00
69b8568ccf better foreign toplevel protocol obedience 2022-08-06 20:57:38 +02:00
vaxerski
f66365d9da fix crash in dwindle on create tiled 2022-08-05 20:00:17 +02:00
vaxerski
d72f1cc644 fix various shadow damage issues 2022-08-05 19:23:53 +02:00
vaxerski
cd37a1533e reject tiling windows that do not meet the max size requirement 2022-08-05 18:10:59 +02:00
vaxerski
575434f1a4 fix rounding on switching only tiled 2022-08-05 18:08:23 +02:00
vaxerski
97e82fa4fb clamp resizing tiled to their max sizes 2022-08-05 17:58:08 +02:00
vaxerski
4ea37fe64d remember floating size between tiles 2022-08-05 17:52:14 +02:00
vaxerski
9540106959 check for x11type and not nofocus in wcf 2022-08-03 21:03:08 +02:00
vaxerski
69558acb2e noInitialFocus in onWindowCreatedFloating as a check 2022-08-03 20:15:39 +02:00
vaxerski
cd483a7a37 ignore borders in nogapswhenonly 2022-08-03 15:25:30 +02:00
vaxerski
e13f2480ff fixed missing recursion of force in dwindle 2022-08-03 12:30:28 +02:00
vaxerski
f36cd350cc do not animate mouse resizes in layouts 2022-08-03 12:27:20 +02:00
vaxerski
60c16f77a6 added master:no_gaps_when_only 2022-08-01 12:57:37 +02:00
vaxerski
f892387b70 added dwindle:no_gaps_when_only 2022-08-01 12:51:52 +02:00
vaxerski
429a9bc6c3 hide only XWayland on incorrect size 2022-07-29 11:45:32 +02:00
vaxerski
b0ab8afc58 fix some XWayland weird popups 2022-07-28 15:40:06 +02:00
vaxerski
920fdd6bff Animation config rework 2022-07-28 13:28:43 +02:00
vaxerski
3904351678 Added layoutmsg and some master layout msgs 2022-07-28 12:00:10 +02:00
vaxerski
31a079b347 added DPMS 2022-07-27 12:32:00 +02:00
vaxerski
19cd04c85f shadow keybinds on drag events 2022-07-21 19:44:34 +02:00
vaxerski
641aaff998 minor code adjustments 2022-07-20 18:39:08 +02:00
vaxerski
900e6947e9 reject windows with tiny sizes, overwrite size 2022-07-18 13:14:31 +02:00
vaxerski
6f1b9d6af9 add master:new_on_top 2022-07-16 23:24:42 +02:00
vaxerski
5c836e6460 added master layout 2022-07-16 15:57:31 +02:00
vaxerski
90ebeaa881 fixed fullscreen opacity on fullscreen 1 2022-07-15 19:33:09 +02:00
vaxerski
634970a284 update deco values on fullscreen 2022-07-14 22:49:49 +02:00
Vaxry
7c999fb9f5
Merge pull request #242 from calebowens/caleb-feature-add-width-multiplier
Added a multiplier for the width to height ratio
2022-07-14 11:38:49 +02:00
vaxerski
4c4c36096b fix config reload on fullscreen mode maximized 2022-07-11 15:40:41 +02:00
vaxerski
2936368e80 minor event fixes 2022-07-11 14:13:15 +02:00
vaxerski
e6872bddf4 fix minor issues with floating windows and fullscreen 2022-07-08 21:52:52 +02:00
vaxerski
491b99c61e handle unmanaged X11 setGeometry 2022-07-08 11:24:07 +02:00
vaxerski
5a22335b8d refocus after group toggles 2022-07-06 15:08:21 +02:00
vaxerski
fc3957d538 optimize workspace in applyNodeData 2022-07-04 00:04:56 +02:00
vaxerski
3df126c675 oops 2022-07-03 23:17:12 +02:00
vaxerski
69e179816b oops last fix didnt fix 2022-07-03 23:16:42 +02:00
vaxerski
a229701f28 fix crash with null pmonitor in special nodes on dwindle 2022-07-03 23:14:51 +02:00
vaxerski
b0cd90a43c refactor a bunch of layout code 2022-06-30 12:09:05 +02:00
vaxerski
9391357063 fix focus on maximize 2022-06-29 14:44:24 +02:00
vaxerski
3d48469cb4 fix decos with workspace offset 2022-06-27 00:25:37 +02:00
vaxerski
78bf88ba60 Added fullscreen rule 2022-06-26 12:12:29 +02:00
vaxerski
3053f99db6 guard dragging windows in dwindle 2022-06-24 18:37:04 +02:00
vaxerski
e4e323a0df dwindle: disallow swaps between workspaces 2022-06-23 20:51:01 +02:00
vaxerski
31dc70a41a Added exact to resizeActive and added moveactive 2022-06-23 10:14:59 +02:00
Caleb Owens
7d80327e7d fixed vertical swapping issue 2022-06-20 17:11:59 +01:00
Caleb Owens
3d46c73981 Added a multiplier for the width to height ratio 2022-06-20 14:37:27 +01:00
vaxerski
663fba76ae Added resizeactive 2022-06-06 19:32:14 +02:00
vaxerski
246aa000f5 Added dwindle:special_scale_factor 2022-06-03 19:03:33 +02:00
vaxerski
b5a100379e reject drag on fullscreen workspace 2022-06-01 21:13:10 +02:00
vaxerski
042e79b888 fix fatal crash 2022-05-31 14:04:11 +02:00
vaxerski
0055efc4f1 Added a special workspace 2022-05-31 14:01:00 +02:00
vaxerski
eee9698ec9 move workspaces and not windows on mon disconnect 2022-05-30 20:44:14 +02:00
vaxerski
227cbb0464 Added fullscreen types, maximize and full 2022-05-29 15:45:51 +02:00
vaxerski
894ae2d742 Use C++-styled pointers for decorations 2022-05-28 23:43:11 +02:00
vaxerski
bdf1c16195 Added IHyprWindowDecoration and Group Bars 2022-05-28 20:46:20 +02:00
vaxerski
b1b24cb21a Added changegroupactive direction 2022-05-28 19:16:20 +02:00
vaxerski
08d4d987cf return nearest mon if point out of range 2022-05-25 18:40:03 +02:00
vaxerski
ef4ab2edd4 fix dwindle leaving artifacts on toggle pseudo 2022-05-21 21:20:56 +02:00
vaxerski
f70d0ec5aa Added movetoworkspacesilent 2022-05-18 12:18:58 +02:00
vaxerski
50f978e518 Added togglesplit dispatcher 2022-05-16 17:37:46 +02:00
vaxerski
e90c1f7022 added dwindle:preserve_split 2022-05-16 17:27:55 +02:00
vaxerski
694f4433a2 Added animation style and style slide 2022-05-14 16:43:30 +02:00
vaxerski
434184aa32 Added dwindle:force_split 2022-05-08 15:36:17 +02:00
vaxerski
908901fbda Fix opening floating on another mon 2022-05-04 15:16:36 +02:00
vaxerski
c35517d44e fixes for xwayland popups, autofloat pop-up and task_dialog 2022-04-24 17:53:50 +02:00
vaxerski
86bb95c125 some fixes for xwayland windows and focus 2022-04-24 17:42:59 +02:00
vaxerski
8f3b4aa89c oops, small fix 2022-04-23 22:11:32 +02:00
vaxerski
3ebe7d7972 Added bezier curves 2022-04-23 21:47:16 +02:00
vaxerski
f84294fe07 fixed fullscreen, removed effective vars from windows 2022-04-23 14:35:34 +02:00
vaxerski
0147975faf New animation system 2022-04-23 14:16:02 +02:00
vaxerski
87b8491294 Added the splitratio dispatcher 2022-04-20 16:53:41 +02:00
vaxerski
418e2d96ae Added the movewindow dispatcher 2022-04-20 16:18:58 +02:00
vaxerski
3e36f1c42c renderer fixes 2022-04-14 17:00:35 +02:00
vaxerski
32597bd8cb dwindle: autodetect first/second node on open 2022-04-13 16:24:31 +02:00
vaxerski
4bd23604f8 Dwindle window group fixes
fixed a crash and animations in the bg
2022-04-12 19:18:26 +02:00
vaxerski
b6a93b2f03 Added window grouping for dwindle
furthermore, added LayoutRenderHints.
2022-04-12 16:44:18 +02:00
vaxerski
a8e8729230 Added zext_workspace protocol support 🎉 2022-04-11 19:51:37 +02:00
vaxerski
8a4f6d01f3 fixed dragging tiled windows cuz i broke it 2022-04-10 20:02:36 +02:00
vaxerski
a06638d87a oops forgot to remove this 2022-04-10 19:33:02 +02:00
vaxerski
c41c01a7fb Splitratio on dwindle and splitratio mouse controls 2022-04-10 19:31:36 +02:00
vaxerski
a49bbf4508 fadeout done 🎉 2022-04-05 20:49:15 +02:00
vaxerski
f8e0b0b448 fadein and prep for fadeout 2022-04-05 19:28:10 +02:00
vaxerski
c21881be25 Implement proper z-system 2022-04-04 16:25:30 +02:00
vaxerski
462781b16f Added drag to move window 2022-04-03 13:49:21 +02:00
vaxerski
3f99dad7f5 Added pseudotiling 2022-04-02 20:04:32 +02:00
vaxerski
f794c91293 windows on top of fullscreen, lastmonitor fixes 2022-03-30 20:16:23 +02:00
vaxerski
cd8d628c72 handle invalid map 2022-03-30 17:43:31 +02:00
vaxerski
39303fd2b0 animate float->tile properly 2022-03-27 20:06:44 +02:00
vaxerski
07612534dd fix fullscreen animation 2022-03-27 19:27:50 +02:00
vaxerski
3d41dd6c25 fix dwindle monitors 2022-03-24 19:05:25 +01:00
vaxerski
ccbc0e4a2e Added window rules 2022-03-24 18:22:01 +01:00
vaxerski
14d387ea14 animation + floating fixes 2022-03-24 16:05:06 +01:00
vaxerski
bcf7ee6dc2 Added basic animations for windows 2022-03-23 22:01:59 +01:00
vaxerski
f108ec78e2 Added movetoworkspace 2022-03-23 16:51:48 +01:00
vaxerski
53388ad8a4 dwindle: fix openingon, kind of 2022-03-22 22:04:35 +01:00
vaxerski
2bc29f32ec finally fixed XWayland popups 2022-03-22 21:28:57 +01:00
vaxerski
90bb8e6441 minor changes 2022-03-22 20:04:39 +01:00
vaxerski
c58b15c6da Fix a crash with setting title 2022-03-22 17:31:19 +01:00
vaxerski
3d61738d5d minor QoL patches 2022-03-21 19:28:43 +01:00
vaxerski
295a0c4a69 Added fullscreen 2022-03-21 19:18:33 +01:00
vaxerski
6dcd6f21b9 create floating windows correctly 2022-03-21 17:24:41 +01:00
vaxerski
1f639f2aba dwindle fixes 2022-03-20 18:31:58 +01:00
vaxerski
9421be0221 removed a past unused placeholder 2022-03-20 18:10:17 +01:00
vaxerski
5644e668ef fix dwindle with workspaces 2022-03-20 16:06:17 +01:00
vaxerski
50370e4216 added workspaces 2022-03-20 15:55:47 +01:00
vaxerski
f8a731b10b focus to layers 2022-03-20 14:36:55 +01:00
vaxerski
332fa8a802 XWayland floating 2022-03-20 13:37:07 +01:00
vaxerski
6fc504fc4c fix various issues with floating windows 2022-03-20 11:22:55 +01:00
vaxerski
a4b026df2b floating windows support 2022-03-20 11:14:24 +01:00
vaxerski
3277321c26 fix recalc dwindle 2022-03-19 20:59:22 +01:00
vaxerski
1a298257c9 fix xwaylabnd too, stuff 2022-03-19 20:56:19 +01:00
vaxerski
cf76b90606 multimon fixes 2022-03-19 20:30:21 +01:00
vaxerski
61e10e2048 added a layoutmanager and basic dwindle 2022-03-19 15:59:53 +01:00