X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=types.c;h=96a389186019babb13baaced8cfca306392ac281;hb=cc4492d9ca51c4291fb5e4c59cfa80b7070f93c7;hp=0f2bc946459bb30cf62997b9ba522e73e8ddb06d;hpb=a1722418105bd0feecc0506319be371166362894;p=bspwm.git diff --git a/types.c b/types.c index 0f2bc94..96a3891 100644 --- a/types.c +++ b/types.c @@ -23,16 +23,13 @@ node_t *make_node(void) return n; } -monitor_t *make_monitor(xcb_rectangle_t *rect) +monitor_t *make_monitor(xcb_rectangle_t rect) { monitor_t *m = malloc(sizeof(monitor_t)); snprintf(m->name, sizeof(m->name), "%s%02d", DEFAULT_MON_NAME, ++monitor_uid); m->prev = m->next = NULL; m->desk = m->last_desk = NULL; - if (rect != NULL) - m->rectangle = *rect; - else - warn("no rectangle was given for monitor '%s'\n", m->name); + m->rectangle = rect; m->top_padding = m->right_padding = m->bottom_padding = m->left_padding = 0; m->wired = true; return m; @@ -54,7 +51,7 @@ monitor_t *get_monitor_by_id(xcb_randr_output_t id) return NULL; } -monitor_t *add_monitor(xcb_rectangle_t *rect) +monitor_t *add_monitor(xcb_rectangle_t rect) { monitor_t *m = make_monitor(rect); if (mon == NULL) { @@ -125,7 +122,9 @@ void transfer_desktop(monitor_t *ms, monitor_t *md, desktop_t *d) desktop_show(d); } + ewmh_update_wm_desktops(); ewmh_update_desktop_names(); + ewmh_update_current_desktop(); put_status(); } @@ -174,15 +173,9 @@ void swap_monitors(monitor_t *m1, monitor_t *m2) m2->prev = p1 == m2 ? m1 : p1; m2->next = n1 == m2 ? m1 : n1; - -#define UPDATE_WM_DESKTOP(m) \ - for (desktop_t *d = m->desk_head; d != NULL; d = d->next) \ - ewmh_update_wm_desktop(d); -UPDATE_WM_DESKTOP(m1) -UPDATE_WM_DESKTOP(m2) -#undef UPDATE_WM_DESKTOP - + ewmh_update_wm_desktops(); ewmh_update_desktop_names(); + ewmh_update_current_desktop(); put_status(); } @@ -197,6 +190,7 @@ desktop_t *make_desktop(const char *name) d->prev = d->next = NULL; d->root = d->focus = NULL; d->history = make_focus_history(); + d->window_gap = WINDOW_GAP; return d; } @@ -296,9 +290,9 @@ void swap_desktops(monitor_t *m, desktop_t *d1, desktop_t *d2) d2->prev = p1 == d2 ? d1 : p1; d2->next = n1 == d2 ? d1 : n1; - ewmh_update_wm_desktop(d1); - ewmh_update_wm_desktop(d2); + ewmh_update_wm_desktops(); ewmh_update_desktop_names(); + ewmh_update_current_desktop(); put_status(); } @@ -326,6 +320,8 @@ rule_t *make_rule(void) r->effect.floating = false; r->effect.follow = false; r->effect.focus = false; + r->effect.unmanage = false; + r->one_shot = false; r->effect.desc[0] = '\0'; r->prev = NULL; r->next = NULL;