cvsimport

This commit is contained in:
Christian Neukirchen 2013-12-13 12:57:57 +00:00
commit 0cad4ef6e0
6 changed files with 16 additions and 9 deletions

View File

@ -37,6 +37,7 @@
char **cwm_argv;
Display *X_Dpy;
Time Last_Event_Time = CurrentTime;
Atom cwmh[CWMH_NITEMS];
Atom ewmh[EWMH_NITEMS];

View File

@ -328,6 +328,7 @@ struct mwm_hints {
#define MWM_DECOR_BORDER (1<<1)
extern Display *X_Dpy;
extern Time Last_Event_Time;
extern struct screen_ctx_q Screenq;
extern struct client_ctx_q Clientq;
extern struct conf Conf;
@ -393,7 +394,7 @@ void client_htile(struct client_ctx *);
void client_lower(struct client_ctx *);
void client_map(struct client_ctx *);
void client_maximize(struct client_ctx *);
void client_msg(struct client_ctx *, Atom);
void client_msg(struct client_ctx *, Atom, Time);
void client_move(struct client_ctx *);
struct client_ctx *client_init(Window, struct screen_ctx *, int);
void client_ptrsave(struct client_ctx *);

View File

@ -168,6 +168,9 @@ client_setactive(struct client_ctx *cc)
struct screen_ctx *sc = cc->sc;
struct client_ctx *oldcc;
if (cc->flags & CLIENT_HIDDEN)
return;
XInstallColormap(X_Dpy, cc->colormap);
if ((cc->flags & CLIENT_INPUT) ||
@ -176,7 +179,7 @@ client_setactive(struct client_ctx *cc)
RevertToPointerRoot, CurrentTime);
}
if (cc->flags & CLIENT_WM_TAKE_FOCUS)
client_msg(cc, cwmh[WM_TAKE_FOCUS]);
client_msg(cc, cwmh[WM_TAKE_FOCUS], Last_Event_Time);
if ((oldcc = client_current())) {
oldcc->active = 0;
@ -511,7 +514,7 @@ client_wm_hints(struct client_ctx *cc)
}
void
client_msg(struct client_ctx *cc, Atom proto)
client_msg(struct client_ctx *cc, Atom proto, Time ts)
{
XClientMessageEvent cm;
@ -521,7 +524,7 @@ client_msg(struct client_ctx *cc, Atom proto)
cm.message_type = cwmh[WM_PROTOCOLS];
cm.format = 32;
cm.data.l[0] = proto;
cm.data.l[1] = CurrentTime;
cm.data.l[1] = ts;
XSendEvent(X_Dpy, cc->win, False, NoEventMask, (XEvent *)&cm);
}
@ -530,7 +533,7 @@ void
client_send_delete(struct client_ctx *cc)
{
if (cc->flags & CLIENT_WM_DELETE_WINDOW)
client_msg(cc, cwmh[WM_DELETE_WINDOW]);
client_msg(cc, cwmh[WM_DELETE_WINDOW], CurrentTime);
else
XKillClient(X_Dpy, cc->win);
}

View File

@ -101,10 +101,10 @@ kbfunc_client_moveresize(struct client_ctx *cc, union arg *arg)
cc->geom.x += client_snapcalc(cc->geom.x,
cc->geom.x + cc->geom.w + (cc->bwidth * 2),
sc->work.x, sc->work.w, sc->snapdist);
sc->work.x, sc->work.x + sc->work.w, sc->snapdist);
cc->geom.y += client_snapcalc(cc->geom.y,
cc->geom.y + cc->geom.h + (cc->bwidth * 2),
sc->work.y, sc->work.h, sc->snapdist);
sc->work.y, sc->work.y + sc->work.h, sc->snapdist);
client_move(cc);
xu_ptr_getpos(cc->win, &x, &y);

View File

@ -147,10 +147,10 @@ mousefunc_client_move(struct client_ctx *cc, void *arg)
cc->geom.x += client_snapcalc(cc->geom.x,
cc->geom.x + cc->geom.w + (cc->bwidth * 2),
sc->work.x, sc->work.w, sc->snapdist);
sc->work.x, sc->work.x + sc->work.w, sc->snapdist);
cc->geom.y += client_snapcalc(cc->geom.y,
cc->geom.y + cc->geom.h + (cc->bwidth * 2),
sc->work.y, sc->work.h, sc->snapdist);
sc->work.y, sc->work.y + sc->work.h, sc->snapdist);
/* don't move more than 60 times / second */
if ((ev.xmotion.time - ltime) > (1000 / 60)) {

View File

@ -212,6 +212,8 @@ xev_handle_enternotify(XEvent *ee)
XCrossingEvent *e = &ee->xcrossing;
struct client_ctx *cc;
Last_Event_Time = e->time;
if ((cc = client_find(e->window)) != NULL)
client_setactive(cc);
}