Files
pdfcraft/crates/platform/Cargo.toml
Coy Geek 49217aec6c fix(theme): complete Linux System appearance tracking (#1017)
* fix(theme): complete Linux System appearance tracking

Follow up on #881 for #446 with the standard numeric appearance portal setting
and event-driven updates that wake idle windows. Keep manual modes independent,
cache their desktop updates without repainting, and cancel the worker on close.

Retain inherited native window appearance and populate both egui style branches
with the chosen palette. Preserve saved System, the Light default and unknown
source fallback, and avoid desktop session access in headless UI contexts.

Assisted-by: Codex (gpt-6.1-sol)

* Desktop theme: keep the GNOME colour-scheme fallback XFCE needs

The portal tracker read only org.freedesktop.appearance, which XFCE's portal
doesn't answer (it proxies the GSettings schemas). It now also reads and
subscribes to org.gnome.desktop.interface color-scheme and uses it when the
freedesktop setting states no preference, as main's reader did. KDE answers
only the freedesktop one, which wins when it states a preference.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Brandon Thomas <echelon@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 15:23:49 -04:00

25 lines
833 B
TOML

[package]
name = "pdfcraft-platform"
description = "Operating-system services shared by the PdfCraft desktop app and automation tools"
version.workspace = true
edition.workspace = true
license.workspace = true
[lints]
workspace = true
[dependencies]
[target.'cfg(target_os = "linux")'.dependencies]
# Already in the dependency graph through the accessibility integration. The portal watcher
# uses the async API so dropping it can cancel an idle subscription without polling.
zbus = { version = "=5.19.0", default-features = false, features = ["async-io"] }
async-channel = "2"
futures-lite = "2"
[dev-dependencies]
# Exercise the actual portal wire decoder and cancellable worker on every native test host.
zbus = { version = "=5.19.0", default-features = false, features = ["async-io"] }
async-channel = "2"
futures-lite = "2"