long desktop(long desk) { if (!_check_init()) { return -1; } if(desk > -1) { set_current_desktop(desk); } return get_current_desktop(); }
void TEST_set_current_desktop() { char *routine = "TEST_set_current_desktop"; printf(testing, routine); long max = desktop_count(); if(max == 1) { return; } long before = get_current_desktop(); if(before < max) { assert(set_current_desktop(max)); sleep(1); assert(desktop_count() == get_current_desktop()); } else { assert(set_current_desktop(max -1)); assert(desktop_count() != get_current_desktop()); } set_current_desktop(before); printf(done, routine); }
XCTRL_API Bool activate_window(Display *disp, Window win, Bool switch_desk) { if (switch_desk) { long desktop = get_desktop_of_window(disp,win); if (desktop>=0) { if (desktop!=get_current_desktop(disp)) { set_current_desktop(disp, desktop); } } } client_msg(disp, win, "_NET_ACTIVE_WINDOW", 2, 0, 0, 0, 0); XSetInputFocus(disp, win, RevertToNone, CurrentTime); XMapRaised(disp, win); return True; }