diff options
author | okan | 2016-10-06 14:30:05 +0000 |
---|---|---|
committer | okan | 2016-10-06 14:30:05 +0000 |
commit | 97f575bc42f2f8f9458adf55d1fc29e8bd021c83 (patch) | |
tree | b5696737272199f7b269d9fe2d600fece5dc4d97 /client.c | |
parent | 931705f1ef0f632addc53c7907152ff9cf0f8e8b (diff) | |
download | cwm-97f575bc42f2f8f9458adf55d1fc29e8bd021c83.tar.gz |
Check the ptr bounds in the new client during cycling, since not all
actions do ptrsave, such as restoring client geometry; adapted from a
diff by Vadim Vygonets.
Diffstat (limited to 'client.c')
-rw-r--r-- | client.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -15,7 +15,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $OpenBSD: client.c,v 1.228 2016/10/04 15:52:32 okan Exp $ + * $OpenBSD: client.c,v 1.229 2016/10/06 14:30:05 okan Exp $ */ #include <sys/types.h> @@ -683,6 +683,10 @@ client_cycle(struct screen_ctx *sc, int flags) sc->cycling = 1; client_ptrsave(oldcc); client_raise(newcc); + if (!client_inbound(newcc, newcc->ptr.x, newcc->ptr.y)) { + newcc->ptr.x = newcc->geom.w / 2; + newcc->ptr.y = newcc->geom.h / 2; + } client_ptrwarp(newcc); } |