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
d1fb9087b2
render/shadow: Adjust alpha by light/dark mode
2026-01-13 19:12:22 +01:00
Victoria Brekenfeld
15bbada498
shell/element: Don't render decorations for dead windows
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
5c656de9d4
shell/window: Respect sharp corners when tiled
2026-01-13 19:12:22 +01:00
Victoria Brekenfeld
fdf865b154
shell/window: Enable resize-border for clipped windows
2026-01-13 19:12:22 +01:00
Victoria Brekenfeld
4854f8e42d
shell/elements: Don't render border when maximized
2026-01-13 19:12:22 +01:00
Victoria Brekenfeld
b6f0855a31
shell/elements: Fix corners order for clipping/shadows
2026-01-13 19:12:22 +01:00
Victoria Brekenfeld
e887e185a7
shell/elements: Don't clip maximized windows/stacks
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
Victoria Brekenfeld
dc5a9fac66
element/surface: Simplify surface feedback selection using the frame_time_filter
2026-01-08 00:20:18 +01:00
Victoria Brekenfeld
d17a4ead68
kms/surface: Simpify surface feedback creation
2026-01-08 00:20:18 +01:00
Victoria Brekenfeld
77d3605fb9
Update smithay for DnD updates
2025-12-04 20:17:12 +01:00
Ian Douglas Scott
282d76ef34
Set X11Surface hidden when a surface is minimized
...
This seems for an SDL XWayland client to restore fullscreen after
unminimize, it needs to see the `_NET_WM_STATE_HIDDEN` state get set
and unset.
In general `_NET_WM_STATE_HIDDEN` does not seem to cover all the
cases covered by waylands "suspended" state, so let's not equate them.
https://github.com/pop-os/cosmic-comp/issues/1510
2025-11-18 22:26:04 +01:00
Victoria Brekenfeld
e5ea486ea0
shell/stack: Don't reset previous_keyboard on noop set_active call
2025-11-11 20:18:58 -07:00
Ian Douglas Scott
e129094bfb
Update smithay
...
Updates for `last_acked`, etc. API changes in
https://github.com/Smithay/smithay/pull/1817 .
Includes layer shell fixes
from https://github.com/Smithay/smithay/pull/1819 .
2025-11-11 21:27:57 +01:00
Ian Douglas Scott
9816b18259
Define a with_toplevel_state, generic over pending bool
...
Reduces a bit of duplication.
2025-11-11 21:27:57 +01:00
Ian Douglas Scott
505e36dcda
Make CosmicWindowInternal/CosmicStackInternal not Clone
...
`IcedElement` uses `Arc` internally (and compares with `Arc::ptr_eq`).
So these structs are never cloned, and probably shouldn't be.
2025-11-04 15:41:08 -08:00
Yureka
a74b6e3a9b
Add hooks for custom window decorations
...
This is a first use of the new hooks system, which allows customizing
cosmic-comp at compile-time.
In this case, the view() function of CosmicWindow / CosmicStack is
hooked and the hook can change what is rendered as the header bar.
Signed-off-by: Yureka <yuka@yuka.dev>
2025-10-29 11:27:14 +01: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
242e465d42
fix(corner-radius): use cached state
2025-10-03 20:11:16 +02:00
Ashley Wulber
e476153086
fix(outline): pass the radii in the correct order for the shader
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
2d9d83d3bd
fix(corner-radius): guard against corner radius being too large
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
Ian Douglas Scott
b75be5b305
Remove last_cursor_position from CosmicMapped
...
Since 5459f52d , this is no longer ever set.
2025-09-18 23:36:30 +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
Vukašin Vojinović
fec7c94605
chore: use std::sync::LazyLock
2025-08-21 13:10:11 +02:00
Ian Douglas Scott
2fbf0081ea
Fix compile warnings on nightly
...
Should fix CI test.
2025-08-12 18:03:27 -04:00
Victoria Brekenfeld
c3d2b5f0b7
element: Allow overriding default scanout behaviour
2025-08-07 19:40:23 +02:00
Victoria Brekenfeld
be1424f1ca
render/wayland: filter scanout candidates by frametime estimation
2025-08-07 19:40:23 +02:00
Michael Aaron Murphy
86493b7898
improv(stack): use system theme colors
2025-07-31 17:19:49 +02:00
Ashley Wulber
f2d6f70e13
fix: only activate the active window of the stack on activation
2025-07-22 13:31:24 +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
614d99fc05
Update smithay, egui, and smithay-egui
2025-06-25 20:32:53 +02:00
Ian Douglas Scott
fa4bffdbe6
Add cursor_image_status/set_cursor_image_status to SeatExt
...
The `cursor_image_status()` function saves some duplication in various
places. The `set_cursor_image_status()` saves a bit less, but is also
handy.
2025-06-10 19:24:05 +02:00
Victoria Brekenfeld
b5e60fcde5
wayland/decorations: Fix xdg-decoration state always shadowing kde-decorations
2025-05-30 17:28:51 +02:00
Victoria Brekenfeld
c5708cd607
wayland/decorations: Fix early requests with kde-protocol
2025-05-28 14:38:30 +02:00
Victoria Brekenfeld
465813c1c5
shell: Using parking_lot's RwLock for fairness guarantees
2025-05-27 20:00:21 +02:00
Ian Douglas Scott
77a639624c
ssd: Set is_ssd(true) on header_bar, and don't set .start
2025-05-19 21:29:51 +02:00
Victoria Brekenfeld
d8fd4b241b
shell: Remove null-bytes from X11 title/app_id
2025-04-30 12:50:33 +02:00
Victoria Brekenfeld
0be83fe930
iced: Optimize updates
2025-04-28 18:03:09 +02:00
Victoria Brekenfeld
a8d12f3172
shell/element: Attach a resize border to tiled undecorated windows
2025-04-03 18:30:47 +02:00