client_ptrwarp should not deal with unhiding or raising clients (non ptr

requests); most callers do this already - deal with the few that do not.
client_ptrwarp becomes a simple wrapper (setpos) but it will be expanded.
This commit is contained in:
okan 2016-10-03 13:41:30 +00:00
parent 1d3a6905f1
commit a8a111dffd
3 changed files with 7 additions and 5 deletions

View File

@ -469,11 +469,6 @@ client_config(struct client_ctx *cc)
void
client_ptrwarp(struct client_ctx *cc)
{
if (cc->flags & CLIENT_HIDDEN)
client_unhide(cc);
else
client_raise(cc);
xu_ptr_setpos(cc->win, cc->ptr.x, cc->ptr.y);
}
@ -686,6 +681,7 @@ client_cycle(struct screen_ctx *sc, int flags)
/* reset when cycling mod is released. XXX I hate this hack */
sc->cycling = 1;
client_ptrsave(oldcc);
client_raise(newcc);
client_ptrwarp(newcc);
}

View File

@ -187,6 +187,8 @@ kbfunc_menu_client(struct client_ctx *cc, union arg *arg)
cc = (struct client_ctx *)mi->ctx;
if (cc->flags & CLIENT_HIDDEN)
client_unhide(cc);
else
client_raise(cc);
if (old_cc)
client_ptrsave(old_cc);
client_ptrwarp(cc);

View File

@ -344,6 +344,10 @@ xev_handle_clientmessage(XEvent *ee)
if ((cc = client_find(e->window)) != NULL) {
if ((old_cc = client_current()) != NULL)
client_ptrsave(old_cc);
if (cc->flags & CLIENT_HIDDEN)
client_unhide(cc);
else
client_raise(cc);
client_ptrwarp(cc);
}
} else if (e->message_type == ewmh[_NET_WM_DESKTOP]) {