Ivan Molodetskikh
55e2ea0c3b
layout: Extract tile.hit(), HitType::hit_tile()
2025-02-10 07:29:33 -08:00
Ivan Molodetskikh
1d883931b4
Account for border in contents_under()
...
Fixes pointer clicks going through window borders to a layer surface below,
also fixes window not getting activated in all cases from a border click.
2025-02-10 07:29:33 -08:00
Ivan Molodetskikh
09a559d3c9
layout: Fix variable names
2025-02-10 07:29:33 -08:00
Ivan Molodetskikh
7ec771f7ec
layout: Rename toplevel_bounds() to new_window_toplevel_bounds()
2025-02-07 09:26:43 +03:00
Ivan Molodetskikh
a444efd0eb
Add focus-window-in-column (by index) action
2025-02-05 17:25:57 +03:00
Ivan Molodetskikh
c41f93a468
Add focus-window-top/bottom/down-or-top/up-or-bottom actions
2025-02-05 17:25:51 +03:00
Ivan Molodetskikh
a0e2a15c60
Take border into account for fixed preset-column-width for tiled windows
2025-01-31 21:30:22 +03:00
Ivan Molodetskikh
a10705fb20
Add toggle-window-rule-opacity action
2025-01-23 11:13:55 +03:00
Ivan Molodetskikh
c892f04c96
tile: Rename update() to update_render_elements()
2025-01-21 11:31:30 +03:00
rustn00b
80815a1591
Add a window swap operation ( #899 )
...
Swap the active window with the a neighboring column's active window.
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com >
Take into account PR comments
- no longer behave like an expel when a swap is made in a direction
where there is no column to swap with
- fix janky animation
2025-01-09 08:29:36 +00:00
Ivan Molodetskikh
a2f9d132a0
Migrate to new Rectangle functions
2025-01-04 11:22:56 +03:00
Ivan Molodetskikh
793e92e9d6
Add default-floating-position relative-to property
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
a7c57f4faf
Add toggle-window-width by-id action
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
8409107a5b
Implement default-window-height for scrolling windows
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
6c897d5201
Add center-window by-id action
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
be05b66ac3
Hide focus ring for unfocused layout and under interactive move
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
3c2e1554c6
Add default-floating-position window rule
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
744955ba69
floating: Remove initial offset when always-centering
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
4ea4d2bd3b
layout: Add animate arg to move_floating_window()
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
6c52077d92
Add move-floating-window action
2024-12-30 20:12:37 +03:00
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
6fba4c371e
Implement default-window-height window rule
...
Only works for floats that aren't initially fullscreen atm.
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
db6447ed79
floating: Support default-column-width in most cases
...
open-fullscreen + open-floating default width is still not supported in this
commit.
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
99c0fabee6
layout: Use new helper function
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
e8027d571f
layout: Implement next-to + open-fullscreen
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
31f0e66f45
floating: Comment on toggle-full-width status
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
1710bb78df
floating: Implement toggle-width/height actions
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
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
5ce3369aa6
layout: Support fullscreen for auto-floating windows
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
965619d096
layout: Move toggle_fullscreen() impl to Workspace
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
3c67b08488
floating: Implement directional move
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
56e249aee6
floating: Implement center_window()
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
6a7c8fcfd5
floating: Implement directional focus
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
14b1003c62
layout: Implement focus_right_or_first() generically
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
c2e4cfd832
Stub out actions when floating is active
...
Make sure they don't go to the unfocused scrolling layout at least.
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
c008e1c5bc
floating: Implement smarter clamping for window location
...
A small part of the window always remains on-screen regardless of the working
area changes.
Interactive move lets the user position the window anywhere; automatic actions
like toggle-window-floating and dialog opening try to put the window fully
on-screen.
The size-fraction canonical floating window position remains unclamped, and
clamping happens when recomputing the logical position.
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
f2bec1f82f
Always honor min height in new window size
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
27e607ab82
layout: Return bool from activate_window()
...
Avoid an extra has_window() call.
2024-12-08 09:25:27 +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
4560251e64
layout: Correct variable names
2024-12-01 22:24:21 -08:00