mirror of
https://github.com/leahneukirchen/cwm.git
synced 2023-08-10 21:13:12 +03:00
Set the initial ptr position during client init, instead of waiting
until (maybe) a ptrwarp call. Likewise, explicitly ensure an inbounds ptr position (same as initial) when saving.
This commit is contained in:
parent
2d8f621b8d
commit
1c54fc079d
19
client.c
19
client.c
@ -75,8 +75,6 @@ client_init(Window win, struct screen_ctx *sc, int active)
|
||||
cc->stackingorder = 0;
|
||||
memset(&cc->hint, 0, sizeof(cc->hint));
|
||||
memset(&cc->ch, 0, sizeof(cc->ch));
|
||||
cc->ptr.x = -1;
|
||||
cc->ptr.y = -1;
|
||||
|
||||
TAILQ_INIT(&cc->nameq);
|
||||
client_setname(cc);
|
||||
@ -93,6 +91,9 @@ client_init(Window win, struct screen_ctx *sc, int active)
|
||||
cc->geom.y = wattr.y;
|
||||
cc->geom.w = wattr.width;
|
||||
cc->geom.h = wattr.height;
|
||||
cc->ptr.x = cc->geom.w / 2;
|
||||
cc->ptr.y = cc->geom.h / 2;
|
||||
|
||||
cc->colormap = wattr.colormap;
|
||||
|
||||
if (wattr.map_state != IsViewable) {
|
||||
@ -468,18 +469,12 @@ client_config(struct client_ctx *cc)
|
||||
void
|
||||
client_ptrwarp(struct client_ctx *cc)
|
||||
{
|
||||
int x = cc->ptr.x, y = cc->ptr.y;
|
||||
|
||||
if (x == -1 || y == -1) {
|
||||
x = cc->geom.w / 2;
|
||||
y = cc->geom.h / 2;
|
||||
}
|
||||
|
||||
if (cc->flags & CLIENT_HIDDEN)
|
||||
client_unhide(cc);
|
||||
else
|
||||
client_raise(cc);
|
||||
xu_ptr_setpos(cc->win, x, y);
|
||||
|
||||
xu_ptr_setpos(cc->win, cc->ptr.x, cc->ptr.y);
|
||||
}
|
||||
|
||||
void
|
||||
@ -492,8 +487,8 @@ client_ptrsave(struct client_ctx *cc)
|
||||
cc->ptr.x = x;
|
||||
cc->ptr.y = y;
|
||||
} else {
|
||||
cc->ptr.x = -1;
|
||||
cc->ptr.y = -1;
|
||||
cc->ptr.x = cc->geom.w / 2;
|
||||
cc->ptr.y = cc->geom.h / 2;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user