strncpy(mm->name, name, name_len);
mm->name[name_len] = '\0';
mm->id = outputs[i];
- add_desktop(mm, NULL);
+ add_desktop(mm, make_desktop(NULL));
PRINTF("add monitor %s (0x%X)\n", mm->name, mm->id);
}
num++;
monitor_t *next = m->next;
if (!m->wired) {
PRINTF("remove monitor %s (0x%X)\n", m->name, m->id);
- transfer_desktops(mm, m);
+ merge_monitors(m, mm);
+ remove_monitor(m);
}
m = next;
}
free(sres);
- put_status();
+ update_motion_recorder();
return (num_monitors > 0);
}
monitor_uid = desktop_uid = client_uid = rule_uid = 0;
mon = last_mon = mon_head = mon_tail = NULL;
rule_head = rule_tail = NULL;
+ status_fifo = NULL;
randr_base = 0;
- split_mode = MODE_AUTOMATIC;
visible = true;
exit_status = 0;
}
const xcb_query_extension_reply_t *qep = xcb_get_extension_data(dpy, &xcb_randr_id);
if (qep->present && import_monitors()) {
+ randr = true;
randr_base = qep->first_event;
xcb_randr_select_input(dpy, root, XCB_RANDR_NOTIFY_MASK_SCREEN_CHANGE);
} else {
+ randr = false;
warn("Couldn't retrieve monitors via RandR.\n");
xcb_rectangle_t rect = (xcb_rectangle_t) {0, 0, screen_width, screen_height};
monitor_t *m = add_monitor(&rect);
- add_desktop(m, NULL);
+ add_desktop(m, make_desktop(NULL));
}
ewmh_update_number_of_desktops();