- Updated palette handling to respect the effective dark mode (including auto) when saving colors, applying themes, and refreshing user list styling.
- Added auto dark-mode tracking that listens to system theme changes and reapplies palette/styles live when Auto is selected, so updates happen without restart (including channel list styling updates via setup_apply_real).
- Synced the stored auto dark-mode state when preferences are applied, keeping Auto mode consistent after manual changes.
- Exposed a helper for keeping the Auto state synchronized from the GTK layer to preferences handling.
- Replaced the dark mode checkbox with an Auto/Dark/Light color mode selector and ensured palette edits use the resolved mode.
- Applied the resolved color mode consistently across palette saving and GTK styling in the user list and channel tree/theme application paths.
- Added a Cairo surface → RGBA pixbuf conversion helper that unpremultiplies ARGB32 data for GTK2 compatibility while keeping window snapshots Cairo-based.
- Updated window snapshotting to use the new Cairo surface conversion instead of gdk_pixbuf_get_from_surface
- Updated xtext palette APIs to accept internal color arrays directly for rendering setup.
- Wired xtext palette creation through UI entry points to use the new palette helper when constructing or refreshing text views.
-Replaced GtkStyle application in the channel tree view with explicit base/text/font modifications to avoid style attach/detach issues on teardown.
-Updated user list styling to apply the font directly instead of setting a shared GtkStyle instance.
-Switched color button updates to use background modifications instead of creating per-button styles, reducing detach warnings on shutdown.
- Updated the xtext renderer to accept Cairo background surfaces and dropped the GtkStyle attach during realize to keep rendering Cairo/Pango-focused.
- Switched background surface ownership and cleanup to use cairo_surface_t across the shared state and settings update path.
- Updated GtkXText to track the draw window and use a pixmap-to-surface helper for Cairo contexts, avoiding drawable references in the struct and rendering flow.
- Added a Cairo helper for capturing window-backed surfaces and used it when blitting during scrolling, fixing the build break from the removed drawable helper.
Added cairo surface tracking and context creation helpers for xtext rendering, including state initialization for the new draw surface field.
Replaced GdkPixmap-based offscreen text buffering with cairo surfaces and routed rendering/underline/strikethrough operations through the cairo context helper.
Replaced GDK source helpers in the text rendering pipeline with Cairo surface/color helpers for lines, backgrounds, and blits.
Updated render sizing to use window dimensions and switched window copy paths to Cairo surfaces.