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
Victoria Brekenfeld
ca00df0b37
kms: Track active clients instead of active buffers
2026-01-08 00:20:18 +01:00
Victoria Brekenfeld
a15e378f1e
chore: Update smithay
2026-01-08 00:20:18 +01:00