1 Index: mozilla/widget/src/gtk2/nsWindow.cpp
2 ===================================================================
3 RCS file: /cvsroot/mozilla/widget/src/gtk2/nsWindow.cpp,v
4 retrieving revision 1.145.2.1
5 diff -d -u -p -r1.145.2.1 nsWindow.cpp
6 --- mozilla/widget/src/gtk2/nsWindow.cpp 18 Aug 2005 08:11:23 -0000 1.145.2.1
7 +++ mozilla/widget/src/gtk2/nsWindow.cpp 24 Nov 2005 14:32:31 -0000
8 @@ -148,9 +148,9 @@ static gboolean visibility_notify_event_
9 GdkEventVisibility *event);
10 static gboolean window_state_event_cb (GtkWidget *widget,
11 GdkEventWindowState *event);
12 -static void style_set_cb (GtkWidget *widget,
13 - GtkStyle *previous_style,
15 +static void theme_changed_cb (GtkSettings *settings,
20 #endif /* __cplusplus */
21 @@ -372,6 +372,10 @@ nsWindow::Destroy(void)
22 mIsDestroyed = PR_TRUE;
25 + g_signal_handlers_disconnect_by_func(gtk_settings_get_default(),
26 + (gpointer)G_CALLBACK(theme_changed_cb),
30 nsCOMPtr<nsIWidget> rollupWidget = do_QueryReferent(gRollupWindow);
31 if (NS_STATIC_CAST(nsIWidget *, this) == rollupWidget.get()) {
32 @@ -2434,8 +2438,16 @@ nsWindow::NativeCreate(nsIWidget
33 G_CALLBACK(delete_event_cb), NULL);
34 g_signal_connect(G_OBJECT(mShell), "window_state_event",
35 G_CALLBACK(window_state_event_cb), NULL);
36 - g_signal_connect(G_OBJECT(mShell), "style_set",
37 - G_CALLBACK(style_set_cb), NULL);
39 + g_signal_connect_after(gtk_settings_get_default(),
40 + "notify::gtk-theme-name",
41 + G_CALLBACK(theme_changed_cb), this);
42 + g_signal_connect_after(gtk_settings_get_default(),
43 + "notify::gtk-key-theme-name",
44 + G_CALLBACK(theme_changed_cb), this);
45 + g_signal_connect_after(gtk_settings_get_default(),
46 + "notify::gtk-font-name",
47 + G_CALLBACK(theme_changed_cb), this);
51 @@ -3916,11 +3928,9 @@ window_state_event_cb (GtkWidget *widget
55 -style_set_cb (GtkWidget *widget, GtkStyle *previous_style, gpointer data)
56 +theme_changed_cb (GtkSettings *settings, GParamSpec *pspec, nsWindow *data)
58 - nsWindow *window = get_window_for_gtk_widget(widget);
60 - window->ThemeChanged();
61 + data->ThemeChanged();
64 //////////////////////////////////////////////////////////////////////