JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
fix of XGetTransientForHint in manage()
[dwm.git] / dwm.c
diff --git a/dwm.c b/dwm.c
index 5cbb59b..8591a7d 100644 (file)
--- a/dwm.c
+++ b/dwm.c
@@ -347,7 +347,7 @@ checkotherwm(void) {
 
 void
 cleanup(void) {
-       Arg a = {.i = ~0};
+       Arg a = {.ui = ~0};
        Layout foo = { "", NULL };
 
        close(STDIN_FILENO);
@@ -865,7 +865,6 @@ killclient(const Arg *arg) {
 void
 manage(Window w, XWindowAttributes *wa) {
        Client *c, *t = NULL;
-       Status rettrans;
        Window trans;
        XWindowChanges wc;
 
@@ -903,14 +902,14 @@ manage(Window w, XWindowAttributes *wa) {
        XSelectInput(dpy, w, EnterWindowMask|FocusChangeMask|PropertyChangeMask|StructureNotifyMask);
        grabbuttons(c, False);
        updatetitle(c);
-       if((rettrans = XGetTransientForHint(dpy, w, &trans) == Success))
-               for(t = clients; t && t->win != trans; t = t->next);
+       if(XGetTransientForHint(dpy, w, &trans))
+               t = getclient(trans);
        if(t)
                c->tags = t->tags;
        else
                applyrules(c);
        if(!c->isfloating)
-               c->isfloating = (rettrans == Success) || c->isfixed;
+               c->isfloating = trans || c->isfixed;
        if(c->isfloating)
                XRaiseWindow(dpy, c->win);
        attach(c);
@@ -1640,11 +1639,11 @@ updatewmhints(Client *c) {
 
 void
 view(const Arg *arg) {
-       if(arg && (arg->i & TAGMASK) == tagset[seltags])
+       if(arg && (arg->ui & TAGMASK) == tagset[seltags])
                return;
        seltags ^= 1; /* toggle sel tagset */
        if(arg && (arg->ui & TAGMASK))
-               tagset[seltags] = arg->i & TAGMASK;
+               tagset[seltags] = arg->ui & TAGMASK;
        clearurgent();
        arrange();
 }