Lines 148-156
Link Here
|
148 |
GdkEventVisibility *event); |
148 |
GdkEventVisibility *event); |
149 |
static gboolean window_state_event_cb (GtkWidget *widget, |
149 |
static gboolean window_state_event_cb (GtkWidget *widget, |
150 |
GdkEventWindowState *event); |
150 |
GdkEventWindowState *event); |
151 |
static void style_set_cb (GtkWidget *widget, |
151 |
static void theme_changed_cb (GtkSettings *settings, |
152 |
GtkStyle *previous_style, |
152 |
GParamSpec *pspec, |
153 |
gpointer data); |
153 |
nsWindow *data); |
154 |
#ifdef __cplusplus |
154 |
#ifdef __cplusplus |
155 |
extern "C" { |
155 |
extern "C" { |
156 |
#endif /* __cplusplus */ |
156 |
#endif /* __cplusplus */ |
Lines 372-377
Link Here
|
372 |
mIsDestroyed = PR_TRUE; |
372 |
mIsDestroyed = PR_TRUE; |
373 |
mCreated = PR_FALSE; |
373 |
mCreated = PR_FALSE; |
374 |
|
374 |
|
|
|
375 |
g_signal_handlers_disconnect_by_func(gtk_settings_get_default(), |
376 |
(gpointer)G_CALLBACK(theme_changed_cb), |
377 |
this); |
378 |
|
375 |
// ungrab if required |
379 |
// ungrab if required |
376 |
nsCOMPtr<nsIWidget> rollupWidget = do_QueryReferent(gRollupWindow); |
380 |
nsCOMPtr<nsIWidget> rollupWidget = do_QueryReferent(gRollupWindow); |
377 |
if (NS_STATIC_CAST(nsIWidget *, this) == rollupWidget.get()) { |
381 |
if (NS_STATIC_CAST(nsIWidget *, this) == rollupWidget.get()) { |
Lines 2434-2441
Link Here
|
2434 |
G_CALLBACK(delete_event_cb), NULL); |
2438 |
G_CALLBACK(delete_event_cb), NULL); |
2435 |
g_signal_connect(G_OBJECT(mShell), "window_state_event", |
2439 |
g_signal_connect(G_OBJECT(mShell), "window_state_event", |
2436 |
G_CALLBACK(window_state_event_cb), NULL); |
2440 |
G_CALLBACK(window_state_event_cb), NULL); |
2437 |
g_signal_connect(G_OBJECT(mShell), "style_set", |
2441 |
|
2438 |
G_CALLBACK(style_set_cb), NULL); |
2442 |
g_signal_connect_after(gtk_settings_get_default(), |
|
|
2443 |
"notify::gtk-theme-name", |
2444 |
G_CALLBACK(theme_changed_cb), this); |
2445 |
g_signal_connect_after(gtk_settings_get_default(), |
2446 |
"notify::gtk-key-theme-name", |
2447 |
G_CALLBACK(theme_changed_cb), this); |
2448 |
g_signal_connect_after(gtk_settings_get_default(), |
2449 |
"notify::gtk-font-name", |
2450 |
G_CALLBACK(theme_changed_cb), this); |
2439 |
} |
2451 |
} |
2440 |
|
2452 |
|
2441 |
if (mContainer) { |
2453 |
if (mContainer) { |
Lines 3916-3926
Link Here
|
3916 |
|
3928 |
|
3917 |
/* static */ |
3929 |
/* static */ |
3918 |
void |
3930 |
void |
3919 |
style_set_cb (GtkWidget *widget, GtkStyle *previous_style, gpointer data) |
3931 |
theme_changed_cb (GtkSettings *settings, GParamSpec *pspec, nsWindow *data) |
3920 |
{ |
3932 |
{ |
3921 |
nsWindow *window = get_window_for_gtk_widget(widget); |
3933 |
data->ThemeChanged(); |
3922 |
if (window) |
|
|
3923 |
window->ThemeChanged(); |
3924 |
} |
3934 |
} |
3925 |
|
3935 |
|
3926 |
////////////////////////////////////////////////////////////////////// |
3936 |
////////////////////////////////////////////////////////////////////// |