Ivan Molodetskikh
5b4750a009
Add focus-floating/tiling actions
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
ad50dd21fe
Add move-window-to-floating/tiling actions
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
8b0cb0bb57
Add set-window-width action
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
a24a6e4e3c
Implement is-floating window rule matcher
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
daaee43be3
layout: Refactor window opening targets
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
28b78a563b
layout: Pass and store view_size on a Tile
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
2f380de73b
floating: Take into account non-fixed min/max size window rule
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
3e13fc3e70
floating: Change from getters to pub(super)
...
These fields are just data storage. They won't have any logic in
getters/setters.
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
88116b9fb1
Preserve tile when moving across monitors
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
53e1c58cc5
Remember floating window position
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
4b9ecdd11d
Render fullscreen scrolling windows on top of floating
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
5488aaf69f
floating: Don't use fullscreen size as floating size
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
96e493d8b1
Restore floating size during interactive move
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
e409453fbd
floating: Update stored size only on removal
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
309bf1348c
floating: Improve expected size requests to avoid (0, 0) and duplicates
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
f4f2a1f6de
floating: Remember and restore window size
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
c359672bd2
floating: Request size only once
...
Let floating windows resize themselves and keep that size.
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
38350935e6
layout: Rename update_interactive_resize() to on_commit()
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
421cd89a0f
layout: Accept &mut self in request_fullscreen()
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
f38acfe988
layout: Remember whether to unfullscreen back into floating
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
aac54d0ea1
Implement floating child stacking above parents
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
4fe718581b
layout: Extract TestWindowParams
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
71842f07bd
Make interactive move keep in the same layout (floating/tiling)
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
10460191b9
Honor min/max size in more places like initial configure
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
c5fffd6e2c
Initial WIP floating window implementation
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
9824321fc9
layout: Return instead of breaking
...
There's no code past this, and we want to break out of all loops.
2024-12-08 09:25:39 +03:00
Ivan Molodetskikh
27e607ab82
layout: Return bool from activate_window()
...
Avoid an extra has_window() call.
2024-12-08 09:25:27 +03:00
Ivan Molodetskikh
a2b27b8790
layout: Ignore more actions during interactive move
...
The interactively moved window is the active window, so this makes sense.
2024-12-07 19:38:48 +03:00
Ivan Molodetskikh
8665003269
layout: Extract ScrollingSpace
...
Leave the Workspace to do the workspace parts, and extract the scrolling parts
into a new file. This is a pre-requisite for things like the floating layer
(which will live in a workspace alongside the scrolling layer).
As part of this huge refactor, I found and fixed at least these issues:
- Wrong horizontal popup unconstraining for a smaller window in an
always-centered column.
- Wrong workspace switch in focus_up_or_right().
2024-12-01 22:24:21 -08:00
Ivan Molodetskikh
1e76716819
layout: Add a test for windows on other workspace remaining activated
2024-12-01 22:24:21 -08:00
Ivan Molodetskikh
91a42fdf58
layout: Fix windows on other workspaces losing activated state
...
This erroneous check was introduced in interactive move.
2024-12-01 22:24:21 -08:00
Ivan Molodetskikh
5ed5243be6
layout: Fix possible crash when dropping move on different, animating output
2024-12-01 22:24:21 -08:00
Christian Meissl
305fc3b557
Activate newly mapped windows with a valid activation token
...
most of the time the activation token is passed
while the window is still unmapped. in this case
store the intend to activate the window for
later retrieval on map.
2024-11-29 21:57:36 -08:00
FluxTape
11f351dbeb
Implement empty-workspace-above-first ( #745 )
...
* Implement empty-workspace-above-first option
* add two failing tests
* fix interactive_move_onto_empty_output_ewaf and
interactive_move_onto_first_empty_workspace tests
* Add two failing ewaf option toggle tests
* Fix adding/removing first empty workspace on option toggle
* Don't remove first empty workspace if focused
* Stop workspace switch when enabling ewaf
* layout/monitor: Offset workspace switch on adding workspace above
* Fix some initial active workspace ids with ewaf
* wiki: Document empty-workspace-above-first
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com >
2024-11-29 08:46:13 +03:00
Ivan Molodetskikh
815fa379ea
layout: Stop workspace switch when moving workspaces to primary
...
Okay, this might be one of the oldest layout issues to have remained uncaught.
Well, maybe as I add more randomized tests, I'll catch even more of those.
2024-11-27 20:55:20 +03:00
Ivan Molodetskikh
4c480a1ea3
layout/tests: Add post option update to randomized test
...
Will help to catch cases where updating options doesn't update the state
correctly.
2024-11-26 22:02:46 +03:00
Ivan Molodetskikh
fa4aa0e06d
layout: Fix adjusting for scale for moved tile when reloading config
2024-11-26 22:01:26 +03:00
Ivan Molodetskikh
e2a6374bf5
layout/tests: Return Layout from check_ops()
...
Cuts down on boilerplate in a few places.
2024-11-26 22:00:44 +03:00
Ivan Molodetskikh
dc14554053
layout: Extract update_options()
2024-11-26 21:59:05 +03:00
Ivan Molodetskikh
985ca7b643
layout/tests: Allow AddWindowRightOf interactive moved window
...
Guess I forgot this.
2024-11-26 15:24:28 +03:00
Ivan Molodetskikh
60624d64fa
layout/tests: Standardize on usize for output id in tests
2024-11-26 15:24:28 +03:00
Ivan Molodetskikh
4c22c3285d
Refactor animation timing to use lazy clocks
2024-11-25 04:07:59 -08:00
Ivan Molodetskikh
93cee2994a
Refactor animations to take explicit current time
2024-11-25 04:07:59 -08:00
Ivan Molodetskikh
1e6b8906e0
layout/monitor: Extract add_workspace_bottom()
2024-11-23 15:07:52 +03:00
Ivan Molodetskikh
6c5b92e5c0
Add interactive_move_onto_empty_output test
...
Tests the add_workspace_bottom() in Monitor::add_tile().
2024-11-23 15:07:35 +03:00
Ivan Molodetskikh
88f4c1d610
layout: Preserve active workspace for removed outputs
2024-11-05 21:52:02 +03:00
Ivan Molodetskikh
ddcb5c5e10
layout: Move some types further down
2024-11-05 21:08:50 +03:00
Ivan Molodetskikh
fce5d66878
Follow window corner radius in insert hint
2024-11-02 10:53:55 +03:00
Ivan Molodetskikh
05d218113c
Add gradient support for the insert hint
...
Implement it via FocusRing which already handles SolidColor vs. Border
render element.
2024-11-02 10:53:55 +03:00
Ivan Molodetskikh
6632699e00
Remove obsolete TODO
2024-11-02 10:53:55 +03:00