X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=dwm.c;h=64bafb7d1be853ce153d959a6b68daa6493a8704;hb=a06b9193c7dcbed307c163ab778ad3bf66807af3;hp=dd55ee22bed4af8802a698cee1821bce4528fc58;hpb=9ff5143acba0c6b457bfb92370c8397b7f124f3a;p=dwm.git diff --git a/dwm.c b/dwm.c index dd55ee2..64bafb7 100644 --- a/dwm.c +++ b/dwm.c @@ -60,7 +60,7 @@ enum { ColBorder, ColFG, ColBG, ColLast }; /* color */ enum { NetSupported, NetWMName, NetLast }; /* EWMH atoms */ enum { WMProtocols, WMDelete, WMName, WMState, WMLast };/* default atoms */ enum { ClkLtSymbol = 64, ClkStatusText, ClkWinTitle, - ClkClientWin, ClkLast }; /* clicks */ + ClkClientWin, ClkRootWin, ClkLast }; /* clicks */ /* typedefs */ typedef unsigned int uint; @@ -84,12 +84,12 @@ typedef struct { typedef struct Client Client; struct Client { char name[256]; + float mina, maxa; int x, y, w, h; int basew, baseh, incw, inch, maxw, maxh, minw, minh; - float mina, maxa; int bw, oldbw; - Bool isbanned, isfixed, isfloating, ismoved, isurgent; uint tags; + Bool isbanned, isfixed, isfloating, ismoved, isurgent; Client *next; Client *snext; Window win; @@ -312,7 +312,7 @@ buttonpress(XEvent *e) { Client *c; XButtonPressedEvent *ev = &e->xbutton; - click = ClkLast; + click = ClkRootWin; if(ev->window == barwin) { i = x = 0; do @@ -327,8 +327,10 @@ buttonpress(XEvent *e) { else click = ClkWinTitle; } - else if((c = getclient(ev->window))) + else if((c = getclient(ev->window))) { + focus(c); click = ClkClientWin; + } for(i = 0; i < LENGTH(buttons); i++) if(click == buttons[i].click && buttons[i].func && buttons[i].button == ev->button @@ -980,11 +982,6 @@ movemouse(const Arg *arg) { None, cursor[CurMove], CurrentTime) != GrabSuccess) return; XQueryPointer(dpy, root, &dummy, &dummy, &x1, &y1, &di, &di, &dui); - if(x1 < c->x || x1 > c->x + c->w || y1 < c->y || y1 > c->y + c->h) { - XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, 0, 0); - x1 = c->x + 1; - y1 = c->y + 1; - } for(;;) { XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRedirectMask, &ev); switch (ev.type) {