Skip to content

v2.7.1 — GTK 3 Theme Startup Race Condition Fix & Monospace Console Polish

Choose a tag to compare

@xyasharx xyasharx released this 07 Oct 21:04
· 271 commits to main since this release
2202652

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() in ui/styles.py to 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 QApplication instantiation to eliminate the Connection already associated with an application ID DBus 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