rem: if (ignoreTimestamp)
context: wSetFocusTo(WScreen *scr, WWindow  *wwin){    static WScreen *old_scr=NULL;    WWindow *old_focused;    WWindow *focused=scr->focused_window;    int timestamp=LastTimestamp;    WApplication *oapp=NULL, *napp=NULL;    int wasfocused;    if (!old_scr)        old_scr=scr;    old_focused=old_scr->focused_window;    LastFocusChange = timestamp;    /*     * This is a hack, because XSetInputFocus() should have a proper     * timestamp instead of CurrentTime but it seems that some times     * clients will not receive focus properly that way.     if (ignoreTimestamp)     */    timestamp = CurrentTime;    if (old_focused)        oapp = wApplicationOf(old_focused->main_window);    if (wwin == NULL) {        XSetInputFocus(dpy, scr->no_focus_win, RevertToParent, timestamp);        if (old_focused) {            wWindowUnfocus(old_focused);        }        if (oapp) {            wAppMenuUnmap(oapp->menu);#ifdef NEWAPPICON            wApplicationDeactivate(oapp);#endif        }        WMPostNotificationName(WMNChangedFocus, NULL, (void*)True);        return;    } else if (old_scr != scr && old_focused) {        wWindowUnfocus(old_focused);    }    wasfocused = wwin->flags.focused;    napp = wApplicationOf(wwin->main_window);    /* remember last workspace where the app has been */    if (napp)  {        /*napp->last_workspace = wwin->screen_ptr->current_workspace;*/        napp->last_workspace = wwin->frame->workspace;    }    if (wwin->flags.mapped && !WFLAGP(wwin, no_focusable)) {        /* install colormap if colormap mode is lock mode */        if (wPreferences.colormap_mode==WCM_CLICK)            wColormapInstallForWindow(scr, wwin);        /* set input focus */        switch (wwin->focus_mode) {        case WFM_NO_INPUT:            XSetInputFocus(dpy, scr->no_focus_win, RevertToParent, timestamp);            break;        case WFM_PASSIVE:        case WFM_LOCALLY_ACTIVE:            XSetInputFocus(dpy, wwin->client_win, RevertToParent, timestamp);            break;        case WFM_GLOBALLY_ACTIVE:            break;        }        XFlush(dpy);        if (wwin->protocols.TAKE_FOCUS) {            wClientSendProtocol(wwin, _XA_WM_TAKE_FOCUS, timestamp);        }        XSync(dpy, False);    } else {        XSetInputFocus(dpy, scr->no_focus_win, RevertToParent, timestamp);    }    if (WFLAGP(wwin, no_focusable))        return;    /* if this is not the focused window focus it */    if (focused!=wwin) {        /* change the focus window list order */        if (wwin->prev)            wwin->prev->next = wwin->next;        if (wwin->next)            wwin->next->prev = wwin->prev;        wwin->prev = focused;        focused->next = wwin;        wwin->next = NULL;        scr->focused_window = wwin;        if (oapp && oapp != napp) {            wAppMenuUnmap(oapp->menu);#ifdef NEWAPPICON            wApplicationDeactivate(oapp);#endif        }    }    wWindowFocus(wwin, focused);    if (napp && !wasfocused) {#ifdef USER_MENU        wUserMenuRefreshInstances(napp->menu, wwin);#endif /* USER_MENU */        if (wwin->flags.mapped)            wAppMenuMap(napp->menu, wwin);#ifdef NEWAPPICON        wApplicationActivate(napp);#endif    }    XFlush(dpy);    old_scr=scr;}