Commit graph

933 commits

Author SHA1 Message Date
Hojjat
0312f9a201 fix: draw the focused window border for the current window only 2026-06-09 23:21:26 -04:00
Ian Douglas Scott
651877e622 image-copy: Adjust cursor position for subsurface offset
The `themed_window` example of `smithay-client-toolkit` is a good test
for this.
2026-06-09 10:42:48 -07:00
Ian Douglas Scott
84d2a9d297 shell: Fix definition of surface_tree_offset()
Using `with_surface_tree_downward()` is wrong because it will traverse
other branches of the surface tree than the one containing `surface`,
and add their offsets.

It's simple enough to instead walk up the surface tree.
2026-06-09 10:42:48 -07:00
Ian Douglas Scott
7d0d374fd8 image-copy: Adjust toplevel capture coordinate for window geometry 2026-06-09 10:42:48 -07:00
Ian Douglas Scott
7a50625e78 image-copy: Fix cursor pos for toplevels with SSD 2026-06-09 10:42:48 -07:00
Ian Douglas Scott
8aea6cc158 image-copy: Function for duplicated toplevel cursor enter/motion code
Deduplicate this before making it more complicated.

Also allows early returns to avoid deep nesting. And avoid duplicating
calculations here for multiple sessions (though normally there won't be
multiple capture sessions of same toplevel with cursor metadata,
probably).
2026-06-09 10:42:48 -07:00
Hojjat
51dd3bc66f fix: pass the full window size to xwayland 2026-06-09 10:42:22 -07:00
Ian Douglas Scott
4eaaf4f55c dbus: Refactor to share DBus connections
We should avoid creating more than one session connection or more than
one system connection. We should also ideally avoid blocking the main
thread.

For now this still uses blocking in a couple places, but wrapping async
code (which is how `zbus::blocking` is implemented anyway).

This moves the `NameOwners` creation out of `A11yKeyboardMonitorState`,
so it can be shared with other things. We will likely want that for
https://github.com/pop-os/cosmic-comp/pull/465 to define a secured
protocol to pass an fd to the portal, and potentially any other
sensitive DBus protocols implemented by the compositor.
2026-06-08 19:03:50 +02:00
Hojjat Abdollahi
28ef6bdbc8
feat: support multiple fullscreen windows per workspace 2026-06-02 17:48:33 +02:00
Ian Douglas Scott
9f28a764a7 chore: update smithay
Includes the fix in https://github.com/Smithay/smithay/pull/2038,
which helps addresses a regression in controller input for Steam games.
2026-06-01 07:52:42 -07:00
Skygrango
203cad8cbd shell: disable WindowUI detection if constraint is active 2026-06-01 07:52:42 -07:00
Skygrango
208c2128cd wayland: implement new_constraint, remove_constraint and cursor_position_hint for PointerConstraintsHandler
new_constraint: check if the surface has pointer focus, keyboard focus, and if the pointer is within toplevel geometry or constraint region. If these conditions are met, then enable the constraint.

remove_constraint: apply last cursor position hint that saved in seat.

cursor_position_hint: save the cursor position hints provided by the client to the seat.
2026-06-01 07:52:42 -07:00
Skygrango
81066d437a shell: remove constraint when target changed 2026-06-01 07:52:42 -07:00
Skygrango
e75c9c0c48 shell: implement surface_geometry_offset_from_toplevel for WorkspaceSet 2026-06-01 07:52:42 -07:00
Skygrango
d829ec3815 shell: implement has_surface for KeyboardFocusTarget 2026-06-01 07:52:42 -07:00
Skygrango
32b54cc31f shell: implement surface_offset and surface_tree_offset 2026-06-01 07:52:42 -07:00
Levi Portenier
8450e89de4
Merge pull request #2381 from dra11y/fix-magnifier-scroll
fix(magnifier): smooth mouse wheel zoom and respect natural scroll direction
2026-05-20 11:39:42 -06:00
Tom Grushka
c776eeac03 change a11y zoom easing function from EaseInOutCubic to Linear to avoid lagging mouse wheel scroll 2026-05-19 17:46:21 -06:00
Victoria Brekenfeld
61149d95d0 xwm: Reflect sticky state 2026-05-19 19:26:25 +02:00
Victoria Brekenfeld
85630236fa xwm: Support sticky requests for unmapped windows 2026-05-19 19:26:25 +02:00
Victoria Brekenfeld
6e4551a200 shell/element: Drop minimize/mapping X11 workaround 2026-05-19 19:26:25 +02:00
Victoria Brekenfeld
9defbe7b13 shell/element: Throttle X11 resizes as well via sync-req 2026-05-19 19:26:25 +02:00
Hojjat
b5186ef21a fix: restore snapped windows as snapped after maximize/minimize 2026-05-13 12:43:02 +02:00
Hojjat
7c02df250e fix: restore the window to where it was before the drag
Restoring a window after snapping it to a corner, or maximizing it
should restore to where the window was before the drag, not after the
drop.
2026-05-13 12:43:02 +02:00
Peter Krull
b955789a4e (fix) Reject resize_request on surfaces which are already being resized 2026-05-07 15:00:38 -06:00
KENZ
977d4c2dca refactor: make get_popup_toplevel() PopupKind agnostic
- for preparation to make unconstrain_popup() PopupKind agnostic.
2026-05-07 15:00:24 -06:00
Victoria Brekenfeld
53e0db28ac chore: Update smithay 2026-04-27 14:51:46 -07:00
Hojjat
fdf015cbcf fix: consider SSD/tab height when calculating last server size 2026-04-20 12:08:47 -06:00
Victoria Brekenfeld
b1f59bd108 state: call image-copy cleanup on refresh 2026-03-27 12:45:43 +01:00
Victoria Brekenfeld
615789cb14 surface: Introduce WeakCosmicSurface 2026-03-27 12:45:43 +01:00
Salvatore Gabriele La Greca
9ad5c916f3
layout/floating: allow size altering if window was maximized (#2038) 2026-03-27 11:56:34 +01:00
Ilia Malanin
06ece0fdcd shell: Return surface from take_fullscreen for symmetry with remove_fullscreen 2026-03-27 11:56:04 +01:00
Ilia Malanin
07d584dadd shell: Simplify early return with take_if 2026-03-27 11:56:04 +01:00
Ilia Malanin
90ce9cab90 shell: Preserve fullscreen state when moving window between workspaces 2026-03-27 11:56:04 +01:00
Victoria Brekenfeld
5216eb50ba chore: Fix remaining clippy lints 2026-03-24 16:23:43 +01:00
Victoria Brekenfeld
3a0b1ae5d2 Partially revert "x11: stop remapping minimized windows on restore"
This re-introduces the xwayland remap on un-minimize hack, but limited
to fullscreen applications.
2026-03-19 16:47:45 +01:00
Vukašin Vojinović
2ca99c670a chore: clippy 2026-03-18 18:19:03 +01:00
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
Ashley Wulber
b28a435b18 fix(headerbar): double click handling & resize only on press 2026-03-13 15:56:42 -04:00
Hojjat
01f1785af5 fix: Ellipsize tab_text and use text widget instead of custom impl 2026-03-13 15:56:42 -04:00
Ashley Wulber
2e08a871be fix: iced widget event handling 2026-03-13 15:56:42 -04:00
Ashley Wulber
ba84ee9324 fix: text position in stack 2026-03-13 15:56:42 -04:00
Ashley Wulber
a48c4fc47d chore: updates after iced rebase 2026-03-13 15:56:42 -04: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
mikairyuu
1dc9c53a41 x11: stop remapping minimized windows on restore
The remap-on-restore workaround was introduced in 3b9d0ce
("HACK: Remap minimized X11 windows on restore"), but forcing an
unmap/map cycle on unminimize now regresses Steam: restoring a
non-fullscreen window can leave the main surface black while input
and tooltips still work.

Keep the existing X11 hidden-state handling and only drop the
forced remap cycle. This preserves the newer minimize/unminimize
signaling for X11 clients while avoiding an extra restore-time
remap.
2026-03-10 17:06:28 +01:00
Ilia Malanin
3f68eee846 shell: Extract FloatingLayout::snap_to_corner to deduplicate snap restore logic 2026-02-24 00:55:49 +01:00
Ilia Malanin
60ecf70910 shell: Add comments explaining pre-set fullscreen before unmap 2026-02-24 00:55:49 +01:00
Ilia Malanin
7f33014710 format: Fixed PR formatting 2026-02-24 00:55:49 +01:00
Ilia Malanin
244111330b shell: Preserve maximized/snapped state on move between workspaces 2026-02-24 00:55:49 +01:00