summaryrefslogtreecommitdiff
path: root/src/display.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/display.c')
-rw-r--r--src/display.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/display.c b/src/display.c
index 073232d..354055a 100644
--- a/src/display.c
+++ b/src/display.c
@@ -1112,6 +1112,7 @@ event_callback (XEvent *event,
meta_verbose ("Received reload theme request\n");
meta_ui_set_current_theme (meta_prefs_get_theme (),
TRUE);
+ meta_display_retheme_all ();
}
}
}
@@ -2067,6 +2068,42 @@ meta_display_unshow_desktop (MetaDisplay *display)
queue_windows_showing (display);
}
+void
+meta_display_queue_retheme_all_windows (MetaDisplay *display)
+{
+ GSList* windows;
+ GSList *tmp;
+
+ windows = meta_display_list_windows (display);
+ tmp = windows;
+ while (tmp != NULL)
+ {
+ MetaWindow *window = tmp->data;
+
+ meta_window_queue_move_resize (window);
+ if (window->frame)
+ meta_frame_queue_draw (window->frame);
+
+ tmp = tmp->next;
+ }
+
+ g_slist_free (windows);
+}
+
+void
+meta_display_retheme_all (void)
+{
+ GSList *tmp;
+
+ tmp = meta_displays_list ();
+ while (tmp != NULL)
+ {
+ MetaDisplay *display = tmp->data;
+ meta_display_queue_retheme_all_windows (display);
+ tmp = tmp->next;
+ }
+}
+
static gboolean is_syncing = FALSE;
gboolean