mirror of
https://github.com/ZoiteChat/zoitechat.git
synced 2026-03-20 04:30:18 +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_title (GTK_WINDOW (win), title);
|
||||||
gtk_window_set_default_size (GTK_WINDOW (win), width, height);
|
gtk_window_set_default_size (GTK_WINDOW (win), width, height);
|
||||||
gtk_window_set_role (GTK_WINDOW (win), role);
|
gtk_window_set_role (GTK_WINDOW (win), role);
|
||||||
|
fe_apply_theme_to_toplevel (win);
|
||||||
if (flags & 1)
|
if (flags & 1)
|
||||||
gtk_window_set_position (GTK_WINDOW (win), GTK_WIN_POS_MOUSE);
|
gtk_window_set_position (GTK_WINDOW (win), GTK_WIN_POS_MOUSE);
|
||||||
if ((flags & 2) && parent_window)
|
if ((flags & 2) && parent_window)
|
||||||
|
|||||||
@@ -3868,6 +3868,7 @@ mg_create_tabwindow (session *sess)
|
|||||||
void
|
void
|
||||||
mg_apply_setup (void)
|
mg_apply_setup (void)
|
||||||
{
|
{
|
||||||
|
GList *toplevels, *node;
|
||||||
GSList *list = sess_list;
|
GSList *list = sess_list;
|
||||||
session *sess;
|
session *sess;
|
||||||
int done_main = FALSE;
|
int done_main = FALSE;
|
||||||
@@ -3887,6 +3888,11 @@ mg_apply_setup (void)
|
|||||||
done_main = TRUE;
|
done_main = TRUE;
|
||||||
list = list->next;
|
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 *
|
static chan *
|
||||||
|
|||||||
@@ -1799,6 +1799,7 @@ servlist_open_edit (GtkWidget *parent, ircnet *net)
|
|||||||
gtk_window_set_modal (GTK_WINDOW (editwindow), TRUE);
|
gtk_window_set_modal (GTK_WINDOW (editwindow), TRUE);
|
||||||
gtk_window_set_type_hint (GTK_WINDOW (editwindow), GDK_WINDOW_TYPE_HINT_DIALOG);
|
gtk_window_set_type_hint (GTK_WINDOW (editwindow), GDK_WINDOW_TYPE_HINT_DIALOG);
|
||||||
gtk_window_set_role (GTK_WINDOW (editwindow), "editserv");
|
gtk_window_set_role (GTK_WINDOW (editwindow), "editserv");
|
||||||
|
fe_apply_theme_to_toplevel (editwindow);
|
||||||
|
|
||||||
vbox5 = gtkutil_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 0);
|
vbox5 = gtkutil_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 0);
|
||||||
gtk_container_add (GTK_CONTAINER (editwindow), vbox5);
|
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_default_size (GTK_WINDOW (servlist), netlist_win_width, netlist_win_height);
|
||||||
gtk_window_set_role (GTK_WINDOW (servlist), "servlist");
|
gtk_window_set_role (GTK_WINDOW (servlist), "servlist");
|
||||||
gtk_window_set_type_hint (GTK_WINDOW (servlist), GDK_WINDOW_TYPE_HINT_DIALOG);
|
gtk_window_set_type_hint (GTK_WINDOW (servlist), GDK_WINDOW_TYPE_HINT_DIALOG);
|
||||||
|
fe_apply_theme_to_toplevel (servlist);
|
||||||
if (current_sess)
|
if (current_sess)
|
||||||
gtk_window_set_transient_for (GTK_WINDOW (servlist), GTK_WINDOW (current_sess->gui->window));
|
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_box_pack_start (GTK_BOX (hbbox), wid, FALSE, FALSE, 0);
|
||||||
|
|
||||||
gtk_widget_show_all (win);
|
gtk_widget_show_all (win);
|
||||||
|
fe_apply_theme_to_toplevel (win);
|
||||||
|
|
||||||
return win;
|
return win;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user