Repository navigation
v2.7.1 — GTK 3 Theme Startup Race Condition Fix & Monospace Console Polish
Dendro 2.7.1 — GTK 3 Theme Startup Race Condition Fix & Monospace Console Polish
Summary
Dendro 2.7.1 fixes a critical startup race condition where GTK 3 and Wayland desktop portal handshakes caused the UI to briefly default to light mode on launch (Issue #38 follow-up), eliminates duplicate D-Bus app ID registration warnings, and standardizes fixed-width monospace fonts across all technical log consoles and tables.
Key Improvements & Fixes
1. GTK 3 Theme Startup Race Condition Resolved (Issue #38 Follow-up)
- The Problem: On Wayland and GTK 3 desktop environments, Qt 6's asynchronous
QStyleHints::colorScheme()check occasionally returned light mode before the D-Bus portal handshake completed, causing Dendro to launch in light mode until settings were toggled. - The Fix: Refactored
is_system_dark_mode()inui/styles.pyto synchronously query host desktop settings (gsettings,gdbus appearance color-scheme,settings.ini) before window creation. The correct theme palette is now applied on the very first rendered frame. - Portal Registration Warning: Configured application identity prior to
QApplicationinstantiation to eliminate theConnection already associated with an application IDDBus error.
2. Monospace Typography Standardization across Consoles
- Applied the native system fixed-width monospace font (
QFontDatabase.SystemFont.FixedFont) to:- The Dry Run Simulation Dialog console output.
- Repository identifiers in the Software Repository Manager.
- Command lines, transaction IDs, and dates in the DNF Transaction History viewer.
3. Code Polish & Syntax Cleanup
- Removed duplicate event loop timer initialization in
main.py. - Fixed layout indentation syntax in
ui/dry_run_dialog.py.
Verification & Quality Assurance
# Verify static code analysis (zero undefined names)
ruff check . --select F821,F822,F823
# Run test suite headlessly
QT_QPA_PLATFORM=offscreen pytest -v tests/
**Full Changelog**: https://github.com/xyasharx/Dendro/compare/v2.7.0...v2.7.1