mirror of
https://github.com/ZoiteChat/zoitechat.git
synced 2026-03-10 07:50:19 +00:00
Added a centralized theme-class application in gtkutil_window_new() so any toplevel created through this helper gets fe_apply_theme_to_toplevel() during construction. This covers most non-session windows consistently at creation time.
Updated Preferences window creation to explicitly apply the toplevel theme after gtk_widget_show_all() in setup_window_open(), matching your requested timing there. Added explicit theme application for non-session windows that bypass gtkutil_window_new() and use direct gtk_window_new() in server list UI (editserv and servlist). Extended mg_apply_setup() to iterate all current GTK toplevels (gtk_window_list_toplevels()) and reapply fe_apply_theme_to_toplevel() during setup/theme reapply flows, ensuring existing windows stay consistent after theme changes. Palette override widgets were not touched.
This commit is contained in:
@@ -1235,6 +1235,7 @@ gtkutil_window_new (char *title, char *role, int width, int height, int flags)
|
||||
gtk_window_set_title (GTK_WINDOW (win), title);
|
||||
gtk_window_set_default_size (GTK_WINDOW (win), width, height);
|
||||
gtk_window_set_role (GTK_WINDOW (win), role);
|
||||
fe_apply_theme_to_toplevel (win);
|
||||
if (flags & 1)
|
||||
gtk_window_set_position (GTK_WINDOW (win), GTK_WIN_POS_MOUSE);
|
||||
if ((flags & 2) && parent_window)
|
||||
|
||||
@@ -3868,6 +3868,7 @@ mg_create_tabwindow (session *sess)
|
||||
void
|
||||
mg_apply_setup (void)
|
||||
{
|
||||
GList *toplevels, *node;
|
||||
GSList *list = sess_list;
|
||||
session *sess;
|
||||
int done_main = FALSE;
|
||||
@@ -3887,6 +3888,11 @@ mg_apply_setup (void)
|
||||
done_main = TRUE;
|
||||
list = list->next;
|
||||
}
|
||||
|
||||
toplevels = gtk_window_list_toplevels ();
|
||||
for (node = toplevels; node; node = node->next)
|
||||
fe_apply_theme_to_toplevel (GTK_WIDGET (node->data));
|
||||
g_list_free (toplevels);
|
||||
}
|
||||
|
||||
static chan *
|
||||
|
||||
@@ -1799,6 +1799,7 @@ servlist_open_edit (GtkWidget *parent, ircnet *net)
|
||||
gtk_window_set_modal (GTK_WINDOW (editwindow), TRUE);
|
||||
gtk_window_set_type_hint (GTK_WINDOW (editwindow), GDK_WINDOW_TYPE_HINT_DIALOG);
|
||||
gtk_window_set_role (GTK_WINDOW (editwindow), "editserv");
|
||||
fe_apply_theme_to_toplevel (editwindow);
|
||||
|
||||
vbox5 = gtkutil_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 0);
|
||||
gtk_container_add (GTK_CONTAINER (editwindow), vbox5);
|
||||
@@ -2078,6 +2079,7 @@ servlist_open_networks (void)
|
||||
gtk_window_set_default_size (GTK_WINDOW (servlist), netlist_win_width, netlist_win_height);
|
||||
gtk_window_set_role (GTK_WINDOW (servlist), "servlist");
|
||||
gtk_window_set_type_hint (GTK_WINDOW (servlist), GDK_WINDOW_TYPE_HINT_DIALOG);
|
||||
fe_apply_theme_to_toplevel (servlist);
|
||||
if (current_sess)
|
||||
gtk_window_set_transient_for (GTK_WINDOW (servlist), GTK_WINDOW (current_sess->gui->window));
|
||||
|
||||
|
||||
@@ -2777,6 +2777,7 @@ setup_window_open (void)
|
||||
gtk_box_pack_start (GTK_BOX (hbbox), wid, FALSE, FALSE, 0);
|
||||
|
||||
gtk_widget_show_all (win);
|
||||
fe_apply_theme_to_toplevel (win);
|
||||
|
||||
return win;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user