#endif
void propertynotify(xcb_property_notify_event_t *);
void quirk_free(struct quirk *);
+void clear_quirks(void);
void quirk_insert(const char *, const char *, const char *, uint32_t, int);
void quirk_remove(struct quirk *);
void quirk_replace(struct quirk *, const char *, const char *, const char *,
void spawn_insert(const char *, const char *, int);
struct spawn_prog *spawn_find(const char *);
void spawn_remove(struct spawn_prog *);
+void clear_spawns(void);
void spawn_replace(struct spawn_prog *, const char *, const char *, int);
void spawn_select(struct swm_region *, union arg *, const char *, int *);
void stack_config(struct swm_region *, union arg *);
DNPRINTF(SWM_D_SPAWN, "spawn_remove: leave\n");
}
+void
+clear_spawns(void)
+{
+ struct spawn_prog *sp;
+
+ while ((sp = TAILQ_FIRST(&spawns)) != NULL) {
+ spawn_remove(sp);
+ }
+}
+
struct spawn_prog*
spawn_find(const char *name)
{
free(qp);
}
+void
+clear_quirks(void)
+{
+ struct quirk *qp;
+
+ while ((qp = TAILQ_FIRST(&quirks)) != NULL) {
+ quirk_remove(qp);
+ }
+}
+
void
quirk_replace(struct quirk *qp, const char *class, const char *instance,
const char *name, uint32_t quirk, int ws)
cursors_cleanup();
+ clear_quirks();
+ clear_spawns();
+ clear_keys();
+
teardown_ewmh();
num_screens = get_screen_count();
for (i = 0; i < num_screens; ++i) {
+ int j;
+
xcb_set_input_focus(conn, XCB_INPUT_FOCUS_POINTER_ROOT,
screens[i].root, XCB_CURRENT_TIME);
XftColorFree(display, DefaultVisual(display, i),
DefaultColormap(display, i), &search_font_color);
}
+
+ for (j = 0; j < SWM_S_COLOR_MAX; ++j) {
+ free(screens[i].c[j].name);
+ }
+
+ for (j = 0; j < SWM_WS_MAX; ++j) {
+ free(screens[i].ws[j].name);
+ }
}
+ free(screens);
+
+ free(bar_format);
+ free(clock_format);
if (bar_font_legacy)
XFreeFontSet(display, bar_fs);