Commit graph

230 commits

Author SHA1 Message Date
Ian Douglas Scott
c0c7a26178 Move some trait bounds to definition of AsGlowRenderer
Everything implementing `AsGlowRenderer` implements `Renderer` and various
other traits, and by making `AsGlowRenderer` depend on these trait,
things requiring `AsGlowRenderer` can avoid listing those traits as
well.

Looks like implied trait bounds still won't work for the
`Self::TexutureId` and `Self::Error` requirements? So those are not
included here.
2026-03-18 01:34:33 +01:00
Ian Douglas Scott
0d6c83db31 Revert "Move some trait bounds to definition of AsGlowRenderer"
This reverts commit c860fcddad.

Accidentally pushed to wrong branch.

If only branch protection has a way to prompt for overriding rule on
push...
2026-03-11 20:08:33 -07:00
Ian Douglas Scott
c860fcddad Move some trait bounds to definition of AsGlowRenderer
Everything implementing `AsGlowRenderer` implements `Renderer` and various
other traits, and by making `AsGlowRenderer` depend on these trait,
things requiring `AsGlowRenderer` can avoid listing those traits as
well.

Looks like implied trait bounds still won't work for the
`Self::TexutureId` and `Self::Error` requirements? So those are not
included here.
2026-03-11 10:14:40 -07:00
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
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
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ć
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
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
c3d2b5f0b7 element: Allow overriding default scanout behaviour 2025-08-07 19:40:23 +02:00
Victoria Brekenfeld
505d9c4039 tiling: fix missing output_enter/set_bounds on remap 2025-07-14 17:38:35 +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
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
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
0deab8d9ed layout/tiling: Fix swap stack overlay offset 2025-02-07 13:32:30 +01:00
Victoria Brekenfeld
c59e9a3c52 layout/tiling: Fix swap indicator element order 2025-02-07 13:32:30 +01:00
Ian Douglas Scott
63995c4919 Remove CosmicMapped::stack_ref_mut
The methods of `CosmicStack` take `&self`, so this isn't actually needed
for anything.
2025-01-28 10:13:52 -08:00
Victoria Brekenfeld
75661c6ca7 tiling: Refactor blocker code 2025-01-16 19:44:12 +01:00
Victoria Brekenfeld
560d234036 tiling: Throttle resizes 2025-01-16 19:44:12 +01:00
Victoria Brekenfeld
cf26fe1c07 tiling: Fix flicker during resizing 2025-01-16 19:44:12 +01:00
Ian Douglas Scott
7f69244e07 Use Mul impl of Size 2025-01-07 12:50:35 +01:00
Ian Douglas Scott
b685512127 Migrate away from Rectangle::from_loc_and_size
Deprecated in `smithay` by https://github.com/Smithay/smithay/pull/1621.
2025-01-07 12:50:35 +01:00
Ian Douglas Scott
61692b21ad Run cargo format 2024-11-18 18:24:53 +01:00
Victoria Brekenfeld
0092dac08c input: Use render_input_order 2024-10-22 19:43:47 +02:00
Victoria Brekenfeld
51c8588f89 render: Use render_input_order 2024-10-22 19:43:47 +02:00
Victoria Brekenfeld
4d215755f6 shell: Fix incomplete focus_stack after swapping 2024-09-10 21:10:02 +02:00