Ian Douglas Scott
de7c78accd
layout/tiling: Make cleanup_drag push tree only if something changes
...
Since `copy_clone()` preserved IDs, `traverse_pre_order_ids()` can be
called on the old tree, without collecting into a `Vec`.
Then we can also `copy_clone()` only if there's actually a change, and
also only call `push_tree()` in that case.
(Once the `LazyCell::get()` stabilization is released, we could use
that here, but `Option::get_or_insert_with()` may be more readable
anyway.)
With this, `cleanup_drag()` should be pretty low-cost, so we shouldn't
have to worry about whether or not it's redundant.
2026-02-09 17:07:03 -08:00
Hojjat
1dfc948f1e
fix: only move the grabbed window if a new zone is chosen
...
This should fix super+click on a tiled window poping it out of the tree
and tiling it to the right half of the screen (default drop window
behavior).
2026-01-26 12:08:58 +01:00
Hojjat
a623f18c25
fix: windows are clipped in overview mode causing visual artifact
2026-01-15 17:27:28 -07:00
Victoria Brekenfeld
e4e7567174
element: Clip to tile size if available instead of element geometry
2026-01-13 19:12:22 +01:00
Victoria Brekenfeld
8f7dc7f00c
render/outline: Handler inner/outer radius properly and ceil thickness
2026-01-13 19:12:22 +01:00
Victoria Brekenfeld
1e0c4f9b05
layout/tiling: Fix render order of group backdrop when swapping
2026-01-13 19:12:22 +01:00
Victoria Brekenfeld
f0b384e240
layout/tiling: Adjust corner radius by scale
2026-01-13 19:12:22 +01:00
Victoria Brekenfeld
6d0f1b273f
layout/tiling: Resize shadows to fit scaled windows
2026-01-13 19:12:22 +01:00
Victoria Brekenfeld
23e1bae96e
layout/tiling: Skip unnecessary stack window swap
2026-01-13 19:12:22 +01:00
Victoria Brekenfeld
a28b11cd5b
floating: Animate shadow position with the window
2026-01-13 19:12:22 +01:00
Victoria Brekenfeld
59fd732982
shell/elements: Handle clipping and shadows
2026-01-13 19:12:22 +01:00
Victoria Brekenfeld
2adebb5fe1
config: Add and propagate appearance_config
2026-01-13 19:12:22 +01:00
Ian Douglas Scott
612ff2f523
layout/floating: In unmap, don't alter size if no pending changes
...
If the intent here was that the `if let` would only handle the case
where there are pending changes, then something like this should be
right.
Seems to fix behavior in
https://github.com/pop-os/cosmic-comp/issues/1819 .
https://github.com/pop-os/cosmic-comp/issues/1645 may be the same issue.
2026-01-08 16:51:59 -07:00
Ian Douglas Scott
fa88002ba4
tiling: Add placeholder when tree is empty
2025-12-09 16:58:59 -07:00
Victoria Brekenfeld
813dd0ce1c
layout/tiling: Always send output_enter after swap
2025-12-09 16:58:44 -07:00
Victoria Brekenfeld
41d0cd8d2b
layout/tiling: Fix crash swapping across workspaces
2025-11-11 20:20:04 -07:00
Vukašin Vojinović
1f7f0c70b7
chore: format for Rust 2024
2025-10-22 23:55:11 +02:00
Vukašin Vojinović
b6c5d00bec
cargo fmt
2025-10-22 23:55:11 +02:00
Vukašin Vojinović
5e9ea93819
chore: manual clippy
2025-10-22 23:55:11 +02:00
Vukašin Vojinović
0847247c33
chore: clippy
2025-10-22 23:55:11 +02:00
Ashley Wulber
3465ce7602
feat: corner radius for CosmicMapped
2025-10-03 20:11:16 +02:00
Ashley Wulber
2873d6b27e
fix(corner-radius): properly handle no value, and use geometry
2025-10-03 20:11:16 +02:00
Ashley Wulber
6f93b8774d
cleanup use statements
2025-10-03 20:11:16 +02:00
Ashley Wulber
f01ebf2f6f
refactor(corner-radius): corner_radius method for CosmicSurface
2025-10-03 20:11:16 +02:00
Ashley Wulber
8ddd14a54f
cleanup: remove TODOs
2025-10-03 20:11:16 +02:00
Ashley Wulber
c6320eec0c
fix: support per-corner radius
...
also adjusts the radius by half of the outline thickness. I believe this is the radius at the center of the outline.
2025-10-03 20:11:16 +02:00
Ashley Wulber
b3aa10436a
feat: corner-radius protocol support
2025-10-03 20:11:16 +02:00
Victoria Brekenfeld
f339e21479
floating: Keep elements positioned relatively on recalculate
2025-09-22 18:07:10 +02:00
Ashley Wulber
b19f66702f
shortcuts: touchpad toggle keybind
2025-09-19 15:33:10 +02:00
Victoria Brekenfeld
7684cd1b2c
render: Fix shader obj leak
2025-09-08 14:47:06 +02:00
Vukašin Vojinović
7f7ab8bcbe
chore: Rust 2024 edition
...
Set the formatting style to 2021 edition to avoid disrupting existing work.
Remove when possible.
2025-08-21 13:10:11 +02:00
Victoria Brekenfeld
73ff0e2c1c
floating/resize: Don't panic if something else cancelled the resize
2025-08-15 16:25:44 +02:00
Victoria Brekenfeld
c3d2b5f0b7
element: Allow overriding default scanout behaviour
2025-08-07 19:40:23 +02:00
Victoria Brekenfeld
9f4db0b28b
floating: Properly scale positions on migration ( fixes #1167 )
2025-08-04 17:11:46 +02:00
Victoria Brekenfeld
505d9c4039
tiling: fix missing output_enter/set_bounds on remap
2025-07-14 17:38:35 +02:00
Victoria Brekenfeld
befcdadf88
floating: animation fixes
2025-07-04 19:45:54 +02:00
Victoria Brekenfeld
77084ba1cc
floating: Return pending geometry on unmap
2025-07-04 19:45:54 +02:00
Victoria Brekenfeld
83ed79af16
workspace: Consistently set minimized state
2025-07-04 19:45:54 +02:00
Victoria Brekenfeld
adedb705e7
shell: handle fullscreen windows on a dedicated layer
...
I hoped to split this up into multiple commits, but the api
changes to `shell/workspace.rs` were to invasive to feasibly do this.
Here is a rough list of changes:
- Fullscreen windows aren't mapped to other layers anymore
- This they need their own logic for:
- Sending frames
- Dmabuf Feedback
- Primary outputs
- On commit handlers
- cursor tests
- They get their own unmap/remap logic
- They get a new restore state similar to minimized windows
- Refactored the minimized window state to reuse as much as possible
here
- They need to be part of focus stacks, which means adjusting them
to a new type `FocusTarget` as they previously only handled
`CosmicMapped`.
- Various shell handlers (minimize, move, menu) now have dedicated
logic for fullscreen surfaces
- This was partially necessary due to relying on CosmicSurface now,
partially because they should've had their own logic from the
start. E.g. the context menu is now reflecting the fullscreen
state
- Fullscreen windows may be rendered behind other windows now, when they
loose focus.
- This needed changes to input handling / rendering
2025-07-04 19:45:54 +02:00
Ian Douglas Scott
e5fbf21fee
Remove debug prints that probably shouldn't have been merged
...
Also add a comment to the one place `eprintln!` is used to explain why
it's appropriate.
2025-07-03 14:25:49 +02:00
Victoria Brekenfeld
465813c1c5
shell: Using parking_lot's RwLock for fairness guarantees
2025-05-27 20:00:21 +02:00
Peter Krull
ad2cba324e
fix: Remove extra scaling of borders
2025-03-12 16:55:00 +01:00
Victoria Brekenfeld
95b27637ae
chore: smithay update
2025-03-12 16:50:58 +01:00
Victoria Brekenfeld
8a32571b8a
tiling: Exclude maximized windows from input/render
2025-03-07 18:52:03 +01:00
Victoria Brekenfeld
a1211e2499
floating: Refresh space after mapping
2025-03-07 14:37:17 +01:00
Victoria Brekenfeld
638684642c
stack: Remember position during continuous move action
2025-03-05 18:24:28 +01:00
Victoria Brekenfeld
e116f20396
stack: Remember previous position during focus navigation
2025-03-05 18:24:28 +01:00
Victoria Brekenfeld
61bde9f3b9
grabs/resize: Fix Xwayland geometry
2025-02-21 14:23:41 +01:00
Victoria Brekenfeld
a57a2163f6
floating: Fix resize indicator order
2025-02-20 20:11:40 +01:00
Daniel
2553810621
grabs: Snap Window Edges to Close Output Edges
2025-02-14 11:58:09 +01:00