Commit graph

812 commits

Author SHA1 Message Date
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
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
Ian Douglas Scott
346f055fdc focus: Check if X11 surface matches in KeyboardFocus::replace()
Tested on `SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS=1 supertux2`, using
XWayland. If the game starts with fullscreen configured, it minimizes
immediately on start. But after this change, this no longer happens.

This hopefully will improve behaviors with various X11/wine fullscreen
clients. It may fix
https://github.com/pop-os/cosmic-comp/issues/1510, though looking at the
video the behavior there may be a bit different.
2025-10-02 16:27:29 +02:00
Ian Douglas Scott
9e66bed9d6 focus: Split off an x11_surface() method from is_xwm() 2025-10-02 16:27:29 +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
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
Ian Douglas Scott
d8281ed51b shell: Handle WorkspaceMode::Global in move_workspace()
If workspaces span across outputs, the `Workspace` at a particular
index should be moved on every `WorkspaceSet`.
2025-09-18 23:35:22 +02:00
Ian Douglas Scott
b8ffc89948 shell: Make migrate_workspace() a no-op on global workspace mode
Doing nothing may be a bit confusing, but `MigrateWorkspaceToOutput`
isn't bound by default anyway.
2025-09-18 23:35:22 +02:00
Victoria Brekenfeld
7684cd1b2c render: Fix shader obj leak 2025-09-08 14:47:06 +02:00
19MisterX98
c9e64acad2 fix: don't assume previous workspace still exists #1588 2025-09-04 12:17:12 +02:00
Ian Douglas Scott
e54f4b4963 protocols/workspace: Set ext workspace id for pinned workspace
The `id` is defined to be sent only once, on creation of the handle or
later. And only for workspaces that are "likely to be stable across
multiple sessions".

Set we add an `id` initially for pinned workspaces, and add one when the
workspace is pinned.

The `id` is not supposed to be human readable, so we just use a random
value.
2025-08-22 11:58:07 +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
Victoria Brekenfeld
b28f92a6e1 focus: Don't consider XWaylandGrab exclusive 2025-08-16 01:19:35 +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
0095b6d505 order: Newer override-redirect windows are higher in the stack 2025-08-13 16:27:44 +02:00
Victoria Brekenfeld
fce9691947 shell: Correctly handle maximized stacks on move requests 2025-08-13 16:03:03 +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
Victoria Brekenfeld
9f4db0b28b floating: Properly scale positions on migration (fixes #1167) 2025-08-04 17:11:46 +02:00
Michael Aaron Murphy
86493b7898 improv(stack): use system theme colors 2025-07-31 17:19:49 +02:00
Victoria Brekenfeld
8648d4450e utils: Abstract built-in output check 2025-07-31 12:59:32 +02:00
Ian Douglas Scott
d6c1ca8c33 Use &dyn to simplify pointer/keyboard/touch target dispatch
Requires https://github.com/Smithay/smithay/pull/1334.
2025-07-30 19:01:32 +02:00
Ashley Wulber
f2d6f70e13 fix: only activate the active window of the stack on activation 2025-07-22 13:31:24 +02:00
Daniel
7f814a445c
fix: Apply window snapping properly on multiple-output configurations (#1529) 2025-07-18 13:02:09 +02:00
Ian Douglas Scott
3debae2495 input/actions: Change active workspace / output when migrated
Without this, a workspace moved with the key binding seems to disappear.
This seems more consistent with the behavior of other key bindings.
2025-07-14 20:38:16 +02:00
Ian Douglas Scott
8aa501c0e0 shell: Make activate/end_workspace_swipe return Err if no set
It doesn't seem like there's really a need to have `Err(_)` and `Ok(None)`.

`Err(_)` means the set exists for the output, but doesn't have the
appropriate workspace index. It's a bit odd that the set not even
existing becomes `Ok(None)`.

Instead, just return `Err(InvalidWorkspaceIndex)` in either case.
2025-07-14 20:38:16 +02:00
Ian Douglas Scott
6f5a14e95c shell: Make activate return Some on Global workspace mode
This seems to have been returning `Ok(None)` erroneously. Fixing this
corrects output changing keybindings on global workspace mode.
2025-07-14 20:38:16 +02:00
Victoria Brekenfeld
505d9c4039 tiling: fix missing output_enter/set_bounds on remap 2025-07-14 17:38:35 +02:00
Victoria Brekenfeld
7a52eff61e workspace: Animation and geometry fixes around maximized windows 2025-07-04 19:45:54 +02:00
Victoria Brekenfeld
a7b369fab3 shell: Fix layer on maximize restore 2025-07-04 19:45:54 +02:00
Victoria Brekenfeld
befcdadf88 floating: animation fixes 2025-07-04 19:45:54 +02:00
Victoria Brekenfeld
7988be12a5 shell: rebase fullscreen changes on for xwayland-grab 2025-07-04 19:45:54 +02:00
Victoria Brekenfeld
9d91014b8d shell: Focus window after unfullscreening 2025-07-04 19:45:54 +02:00
Victoria Brekenfeld
261134d827 shell: Correctly track was_maximized for fullscreened sticky windows 2025-07-04 19:45:54 +02:00
Victoria Brekenfeld
54e76d5ad2 shell: Don't consider animation geometry when remapping fullscreen surfaces 2025-07-04 19:45:54 +02:00
Victoria Brekenfeld
d63f1abcdd workspace: Correctly handle unmapping maximized elements 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
dec2092684 workspace: Add missing output_enter/leave events for fullscreen surfaces 2025-07-04 19:45:54 +02:00
Victoria Brekenfeld
828c0a225b shell: Fix clicking on background fullscreen surfaces 2025-07-04 19:45:54 +02:00
Victoria Brekenfeld
165f83fa38 shell: Properly restore maximized state from minimize/fullscreen 2025-07-04 19:45:54 +02:00
Victoria Brekenfeld
b11456614f shell/workspace: Don't double-remove animating fullscreen surfaces 2025-07-04 19:45:54 +02:00
Victoria Brekenfeld
5f97691ce5 xwayland: Don't allow spurious map_requests to map windows twice 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
9d3678e908 shell: Ignore fullscreen requests to minimized windows 2025-07-04 19:45:54 +02:00