cosmic-comp/src
Tom Grushka 01c0cb020e fix: a11y: magnifier: correct Centered/OnEdge focal-point math and refresh focal point at zoom-in
- I used AI to assist in research of the focal point computation formulae for OnEdge and Centered modes.
- I used the formulas found in [KDE's zoom magnifier](https://invent.kde.org/plasma/kwin/-/blob/master/src/plugins/zoom/zoom.cpp) and converted them to Rust and the COSMIC focal point system.

- Remove unnecessary focal-point precomputation in `OutputZoomState::new`, because it is now updated on first zoom in anyway.

- Do focal point computation in Local coordinates in update_focal_point to eliminate local-global conversion confusion/ issues.

- ZoomMovement::OnEdge - single code path rewrite - old two-branch logic caused jumping and unpredictability at high zoom. Fixes [#2683](https://github.com/pop-os/cosmic-epoch/issues/2683), partially addresses [#2688](https://github.com/pop-os/cosmic-epoch/issues/2688).

- ZoomMovement::Centered - translation/clamp/invert - prevents "blow up" of calculation at zoom level > 2.0 that caused cursor to disappear off bottom right of screen. Fixes [#1503](https://github.com/pop-os/cosmic-comp/issues/1503).

- `is_level_change` - sets `previous_point` so that `animating_focal_point` interpolates instead of jumping. Still room for improvement (needs focal point recomputation per-frame during animation to prevent "boomerang" feel), but this is still an improvement over jumping.

- In `trigger_zoom`, call `update_focal_point` when `level > 1.0` - overlaps proposal in [#1859](https://github.com/pop-os/cosmic-comp/pull/1859) + the level gate to prevent stale focal point on zoom in. Fixes [#2511](https://github.com/pop-os/cosmic-comp/issues/2511) and [#1883](https://github.com/pop-os/cosmic-epoch/issues/1883). Partially addresses [#1420](https://github.com/pop-os/cosmic-comp/issues/1420) (item 1 only).
2026-07-13 13:08:45 +02:00
..
backend render/blur: Fix rotated outputs having cut off blur regions 2026-07-09 18:08:01 +02:00
config feat: add config option for xdg activation behavior 2026-06-03 08:09:29 +02:00
dbus feat: separate logind feature from systemd 2026-06-16 14:41:51 -06:00
input chore: fix warnings with no features 2026-07-09 18:08:01 +02:00
logger chore: format for Rust 2024 2025-10-22 23:55:11 +02:00
shell fix: a11y: magnifier: correct Centered/OnEdge focal-point math and refresh focal point at zoom-in 2026-07-13 13:08:45 +02:00
utils render/blur: Cache native texture type 2026-07-09 18:08:01 +02:00
wayland chore: update smithay 2026-07-09 18:08:01 +02:00
debug.rs chore: Fix remaining clippy lints 2026-03-24 16:23:43 +01:00
hooks.rs Add hooks for custom window decorations 2025-10-29 11:27:14 +01:00
lib.rs Add cosmic-keyboard-layout-unstable-v1 protocol 2026-07-07 16:44:09 +02:00
main.rs Add hooks for custom window decorations 2025-10-29 11:27:14 +01:00
session.rs session: Make sure to mark the socket as CLOEXEC early 2026-04-20 19:24:19 +02:00
state.rs render: Use NamespaceElements to fix blurred lower layer-shell surfaces 2026-07-09 18:08:01 +02:00
systemd.rs chore: format for Rust 2024 2025-10-22 23:55:11 +02:00
theme.rs chore: format for Rust 2024 2025-10-22 23:55:11 +02:00
xwayland.rs chore: update smithay 2026-06-30 18:37:42 +02:00