Applied explicit GTK3/GTK2 window access guards across render/scroll/buffer sizing paths, including gtk_xtext_render_page and gdk_window_get_width/height callsites.
Updated the network helper API to use uint32_t and standard allocation/duplication routines, dropping the GLib include from the implementation and adding <stdint.h> to the header.
Replaced glib string/util usage in the win32 sysinfo backend with local helpers, a small string builder, and Windows UTF-8 conversion, removing the glib dependency there.
Updated the network helper API to use uint32_t and standard allocation/duplication routines, dropping the GLib include from the implementation and adding <stdint.h> to the header.
Integrated STS capability handling and connection lifecycle hooks (ignore CAP DEL, trigger upgrades, reschedule on disconnect, new server fields).
Initialized and cleaned up STS state during startup/shutdown to persist policies across sessions.
Allowed Lua scripts to be located by basename (script name only) when resolving /lua unload and related operations, while keeping path-based matching for explicit paths.
Ensured /lua load reports failures when script creation fails and added explicit failure feedback to the user.
Added unload feedback that distinguishes immediate unloads from deferred unloads, so users see confirmation right away.
Spot-checked GTK stock icon usage in chanlist.c, menu.c, and sexy-spell-entry.c to confirm expected GTK3 icon mapping coverage at the call sites you flagged.
Switched channel tree and theme application logic to use the new palette helper.
Updated entry and user list styling to route palette/font application through the helper.
Split the GTK3 and GTK2 initialization paths in gtk_xtext_realize() so the GTK3 branch uses gtk_widget_get_allocation()/gtk_widget_get_parent_window() and the GTK2 branch keeps the direct struct access under #if !HAVE_GTK3.
Consolidated the GTK3 vs GTK2 branching in gtk_xtext_realize() so GTK3 uses gtk_widget_get_allocation(), gtk_widget_get_parent_window(), and gtk_widget_set_window(), with the existing GTK2 direct struct access preserved under #if !HAVE_GTK3.
Split the GTK3 and GTK2 branches in gtk_xtext_realize() so GTK3 uses gtk_widget_get_allocation(), gtk_widget_get_parent_window(), and gtk_widget_set_window(), while keeping the existing GTK2 struct access under #if !HAVE_GTK3.
Updated gtk_xtext_realize() to use gtk_widget_get_allocation(), gtk_widget_get_parent_window(), and gtk_widget_set_window() on GTK3, and routed all subsequent window usage through the local window variable instead of direct struct access; the GTK2 path remains intact under #if !HAVE_GTK3.
Adjusted gtk_xtext_clear_background() to use gtk_widget_get_window() on GTK3 rather than widget->window.
Applied gtk_box_set_homogeneous() in GTK3 branches where the GTK2 code requested homogeneous layout (e.g., dialog hboxes).
Updated remaining helpers and setup/preferences UI box constructors (including the shared mg_box_new helper) to follow the same GTK3/GTK2 branching approach consistently across src/fe-gtk/
Removed a lingering commented-out gtk_misc_set_alignment call in servlistgui.c so the remaining legacy alignment calls surfaced by search are all active and guarded.