*/
if (new_ws->old_r == this_r)
TAILQ_FOREACH(win, &new_ws->winlist, entry)
- XMapRaised(display, win->id);
+ if (!(win->ws->cur_layout->flags &
+ SWM_L_MAPONFOCUS))
+ XMapRaised(display, win->id);
TAILQ_FOREACH(win, &old_ws->winlist, entry)
unmap_window(win);
};
unfocus_all();
XSetInputFocus(display, PointerRoot, RevertToPointerRoot, CurrentTime);
- XWarpPointer(display, None, rr->s[i].root, 0, 0, 0, 0, rr->g.x,
- rr->g.y + bar_enabled ? bar_height : 0);
+ XWarpPointer(display, None, rr->s[i].root, 0, 0, 0, 0, rr->g.x + 1,
+ rr->g.y + bar_enabled + 1 ? bar_height : 0);
}
void
win = find_window(e->xunmap.window);
if (win == NULL)
goto done;
- if (win->transient)
- goto done;
if (getstate(e->xunmap.window) == NormalState) {
/*
if (TAILQ_FIRST(&ws->winlist) == win)
winfocus = TAILQ_NEXT(win, entry);
else {
- winfocus = TAILQ_PREV(ws->focus, ws_win_list,
- entry);
+ if (ws->focus)
+ winfocus = TAILQ_PREV(ws->focus,
+ ws_win_list, entry);
if (winfocus == NULL)
winfocus = TAILQ_LAST(&ws->winlist,
ws_win_list);