Commit graph

2015 commits

Author SHA1 Message Date
Ian Douglas Scott
8e9f832fad wayland: Support wl_fixes protocol using new smithay support 2026-02-05 02:01:14 +01:00
Ian Douglas Scott
748ecb60a9 Add a profile-with-tracy-gpu feature 2026-02-05 02:01:14 +01:00
Ian Douglas Scott
e1342fb2e3 image-copy: Use "buffer age" of 1 for capture
The logic `age_for_buffer` used seems to be a misinterpretation of the
protocol.

The wording is a little unclear, but it seems tracking buffer age is the
responsibility of the client, and the client is required to accumulate
damage and pass it in `damage_buffer`.

Our clients initially weren't doing that correctly. I updated
xdg-desktop-portal-cosmic to use `damage_buffer` after testing on
wlroots, and cosmic-workspaces was recently updated as well.
2026-02-05 02:01:14 +01:00
Ian Douglas Scott
9bc1b6e1ee image-copy: Use damage_output() for additional damage
The important change here is that we now apply the additional damage
first, instead of using `.extend()` to add it after other elements. This
is important since `OutputDamageTracker` will ignore our damage elements
if there are behind an element with an opaque region.

This also makes things a bit simpler, especially `take_screencopy_frames()`,
which no longer needs a mutable references to extend then truncate.

The implementation of `OutputDamageTracker` isn't entirely clear, but as
far as I can tell this is intended to work, and it seems to work in some
testing.
2026-02-05 02:01:14 +01:00
Ian Douglas Scott
cac7a5aca6 image-copy: Use abstraction that's now provided by Smithay
This doesn't change much, since the Smithay implementation is based on
the `cosmic-comp` version, but made more generic. We provide our own
implementation for our workspace capture protocol, but otherwise Smithay
handles the boilerplate now.

This should not cause any change in behavior.
2026-02-05 02:01:14 +01:00
Ian Douglas Scott
0f7e53b600 Update smithay to latest commit
Includes an implementation for `VirtualKeyboardHandler`, which is now
required.
2026-02-05 02:01:14 +01: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
Levi Portenier
816df0cf2b
Merge pull request #1999 from hojjatabdollahi/hojjat/fix-artifact
fix: windows are clipped in overview mode causing visual artifact
2026-01-22 16:02:33 -07:00
Levi Portenier
21c049cad2
Merge branch 'master' into hojjat/fix-artifact 2026-01-22 15:11:08 -07:00
Hosted Weblate
996a8a833f i18n: translation updates from weblate
Co-authored-by: Aman Alam <aalam@users.noreply.hosted.weblate.org>
Co-authored-by: Baurzhan Muftakhidinov <baurthefirst@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Jun Hwi Ku <siguning@gmail.com>
Co-authored-by: gift983 <983649@my.leicestercollege.ac.uk>
Co-authored-by: jonnysemon <jonnysemon@users.noreply.hosted.weblate.org>
Co-authored-by: 김유빈 <k.sein1016@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-comp/ar/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-comp/ko/
Translation: Pop OS/COSMIC Comp
2026-01-21 12:45:33 +01:00
Hosted Weblate
ef5d1f1c37 i18n: translation updates from weblate
Co-authored-by: Aman Alam <aalam@users.noreply.hosted.weblate.org>
Co-authored-by: Baurzhan Muftakhidinov <baurthefirst@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: jonnysemon <jonnysemon@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-comp/ar/
Translation: Pop OS/COSMIC Comp
2026-01-21 09:56:08 +01:00
Hosted Weblate
b5e8c585bf i18n: translation updates from weblate
Co-authored-by: lorduskordus <lorduskordus@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-comp/cs/
Translation: Pop OS/COSMIC Comp
2026-01-16 15:55:22 +01:00
Hojjat
a623f18c25 fix: windows are clipped in overview mode causing visual artifact 2026-01-15 17:27:28 -07:00
Victoria Brekenfeld
4adb07443a shell: Only clear tiling position on move 2026-01-13 14:35:54 -07:00
Nikola Hristov
09bca7a575 fix: Fullscreen request unreachable code crash
caused by a duplication in pending_windows
2026-01-13 20:56:59 +02:00
Victoria Brekenfeld
0116bc0dc2 element/surface: Fix corner radius of SSD windows 2026-01-13 19:12:22 +01: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
d5734b4b68 render/shaders: Use high precision for everything 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
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
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
23e1bae96e layout/tiling: Skip unnecessary stack window swap 2026-01-13 19:12:22 +01:00
Victoria Brekenfeld
8c0136cec0 render/shadow: Tweak shadow variables 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
a28b11cd5b floating: Animate shadow position with the window 2026-01-13 19:12:22 +01:00
Victoria Brekenfeld
2c9857fdfc shaders: Use half-pixels for the outline 2026-01-13 19:12:22 +01:00
Victoria Brekenfeld
fc7bbd7814 render/shadow: Add physical 1px safety margin 2026-01-13 19:12:22 +01:00
Victoria Brekenfeld
40d7fea1cc render: Fix gap between outline and windows 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
ea470f0a4b config: Update default for appearance_settings 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
Victoria Brekenfeld
94d49210e6 shaders: Add drop-shadow shader 2026-01-13 19:12:22 +01:00
Victoria Brekenfeld
2f39c9682c shaders: Add clipped-surface shader 2026-01-13 19:12:22 +01:00
Nikola Hristov
ea429a778e fix: Toplevel disappearing after unmap 2026-01-13 16:50:01 +01:00
Victoria Brekenfeld
d708e18278 focus: Restore focus to swap group 2026-01-12 17:47:28 +01:00
mikairyuu
15b6b678c1 fix(shell): distinguish between unmapping and destroying surfaces
Previously, `unmap_surface` automatically pushed all unmapped windows
into the `pending_windows` list. This behavior is correct for X11
windows (which may be remapped) but incorrect for Wayland `toplevel_destroyed`
events, where the role is permanently gone.

This caused issues with clients like Telegram that reuse `wl_surface`s.
Because the destroyed toplevel remained in `pending_windows`, a
subsequent cleanup commit (e.g., null buffer) triggered a configure
event. This prematurely marked the surface as `configured` in the
shell state.

Consequently, when the client attached a new `xdg_toplevel` role,
the compositor skipped the mandatory initial configure event (assuming
it was already done), causing the window to never appear.

This refactors `unmap_surface` to return `Option<PendingWindow>`
instead of mutating global state.
- XWayland: Explicitly saves the pending window (behavior preserved).
- XDG Shell: Drops the pending window, preventing ghost state interactions.

Fixes #1816
2026-01-09 14:50:55 -07:00
Victoria Brekenfeld
e6a3a3a9c9 xwm: Set xcursor variables in Xresources db 2026-01-09 20:49:56 +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
7b8fca9ece wayland/dmabuf: Send initial surface feedback 2026-01-08 00:20:18 +01: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
85d8b8dc06 kms/surface: Clear feedback on resume 2026-01-08 00:20:18 +01:00
Victoria Brekenfeld
2eff4607bd kms/device: Advertise texture_formats instead of render_formats 2026-01-08 00:20:18 +01:00