void transfer_desktop(monitor_t *ms, monitor_t *md, desktop_t *d) { if (ms == md) return; desktop_t *dd = ms->desk; unlink_desktop(ms, d); insert_desktop(md, d); if (d == dd) { if (ms->desk != NULL) show_desktop(ms->desk); if (md->desk != d) hide_desktop(d); } for (node_t *n = first_extrema(d->root); n != NULL; n = next_leaf(n, d->root)) translate_client(ms, md, n->client); arrange(md, d); if (d != dd && md->desk == d) show_desktop(d); history_transfer_desktop(md, d); ewmh_update_wm_desktops(); ewmh_update_desktop_names(); ewmh_update_current_desktop(); put_status(); }
void add_desktop(monitor_t *m, desktop_t *d) { PRINTF("add desktop %s\n", d->name); insert_desktop(m, d); num_desktops++; ewmh_update_number_of_desktops(); ewmh_update_desktop_names(); put_status(); }
void add_desktop(monitor_t *m, desktop_t *d) { put_status(SBSC_MASK_DESKTOP_ADD, "desktop_add %s %s\n", m->name, d->name); insert_desktop(m, d); ewmh_update_number_of_desktops(); ewmh_update_desktop_names(); ewmh_update_wm_desktops(); put_status(SBSC_MASK_REPORT); }
void add_desktop(monitor_t *m, desktop_t *d) { put_status(SBSC_MASK_DESKTOP_ADD, "desktop_add 0x%08X %s 0x%08X\n", d->id, d->name, m->id); d->border_width = m->border_width; d->window_gap = m->window_gap; insert_desktop(m, d); ewmh_update_number_of_desktops(); ewmh_update_desktop_names(); ewmh_update_wm_desktops(); put_status(SBSC_MASK_REPORT); }
bool transfer_desktop(monitor_t *ms, monitor_t *md, desktop_t *d) { if (ms == NULL || md == NULL || d == NULL || ms == md) { return false; } bool was_active = (d == ms->desk); unlink_desktop(ms, d); if (md->desk != NULL) { hide_desktop(d); } insert_desktop(md, d); history_transfer_desktop(md, d); if (was_active) { if (mon == ms) { focus_node(ms, NULL, NULL); } else { activate_node(ms, NULL, NULL); } } if (ms->sticky_count > 0 && was_active) { sticky_still = false; transfer_sticky_nodes(ms, d, ms->desk, d->root); sticky_still = true; } adapt_geometry(&ms->rectangle, &md->rectangle, d->root); arrange(md, d); if (md->desk == d) { if (mon == md) { focus_node(md, d, d->focus); } else { activate_node(md, d, d->focus); } } ewmh_update_wm_desktops(); ewmh_update_desktop_names(); ewmh_update_current_desktop(); put_status(SBSC_MASK_DESKTOP_TRANSFER, "desktop_transfer 0x%08X 0x%08X 0x%08X\n", ms->id, d->id, md->id); put_status(SBSC_MASK_REPORT); return true; }