JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
fixed urgent hint handling
[dwm.git] / dwm.c
diff --git a/dwm.c b/dwm.c
index af13a58..a1a34e2 100644 (file)
--- a/dwm.c
+++ b/dwm.c
@@ -44,7 +44,7 @@
  * TODO: Idea:
  * I intend to not provide real Xinerama support, but instead having a Column
  * tilecols[] array which is used by tile(), and a Column maxcols[] arrays which is used by
- * maximise(). Those arrays should be initialized in config.h. For simplicity
+ * monocle(). Those arrays should be initialized in config.h. For simplicity
  * reasons mwfact should be replaced with a more advanced method which
  * implements the same, but using the boundary between tilecols[0] and
  * tilecols[1] instead. Besides this, get rid of BARPOS and use instead the
@@ -55,9 +55,9 @@
  * #define BW sw
  * bh is calculated automatically and should be used for the 
  */
-#ifdef XINERAMA
+//#ifdef XINERAMA
 #include <X11/extensions/Xinerama.h>
-#endif
+//#endif
 
 /* macros */
 #define BUTTONMASK             (ButtonPressMask|ButtonReleaseMask)
@@ -172,7 +172,7 @@ void killclient(const char *arg);
 void manage(Window w, XWindowAttributes *wa);
 void mappingnotify(XEvent *e);
 void maprequest(XEvent *e);
-void maximise(void);
+void monocle(void);
 void movemouse(Client *c);
 Client *nexttiled(Client *c);
 void propertynotify(XEvent *e);
@@ -1086,7 +1086,7 @@ maprequest(XEvent *e) {
 }
 
 void
-maximise(void) {
+monocle(void) {
        Client *c;
 
        domwfact = dozoom = False;
@@ -1474,9 +1474,9 @@ setup(void) {
        int screens = 1;
        unsigned int i;
        XSetWindowAttributes wa;
-#ifdef XINERAMA
+//#ifdef XINERAMA
        XineramaScreenInfo *info;
-#endif
+//#endif
 
        /* init screen */
        screen = DefaultScreen(dpy);
@@ -1485,6 +1485,14 @@ setup(void) {
        sy = 0;
        sw = DisplayWidth(dpy, screen);
        sh = DisplayHeight(dpy, screen);
+       if(XineramaIsActive(dpy)) {
+               if((info = XineramaQueryScreens(dpy, &screens))) {
+                       sx = info[0].x_org;
+                       sy = info[0].y_org;
+                       sw = info[0].width;
+                       sh = info[0].height;
+               }
+       }
 
        /* init atoms */
        wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False);
@@ -1500,10 +1508,10 @@ setup(void) {
        cursor[CurMove] = XCreateFontCursor(dpy, XC_fleur);
 
        ncols = 2;
-#ifdef XINERAMA
+#if 0
        if(XineramaIsActive(dpy)) {
                if((info = XineramaQueryScreens(dpy, &screens))) {
-                       if(screens == 1) {
+                       if(screens >= 1) {
                                sx = info[0].x_org;
                                sy = info[0].y_org;
                                sw = info[0].width;
@@ -1523,14 +1531,12 @@ setup(void) {
                }
        }
        else
-#endif
        {
                cols = emallocz(ncols * sizeof(Column));
                cols[0].x = sx;
                cols[0].y = sy;
-
-
        }
+#endif
        /* init appearance */
        dc.norm[ColBorder] = getcolor(NORMBORDERCOLOR);
        dc.norm[ColBG] = getcolor(NORMBGCOLOR);
@@ -1865,7 +1871,10 @@ updatewmhints(Client *c) {
        XWMHints *wmh;
 
        if((wmh = XGetWMHints(dpy, c->win))) {
-               c->isurgent = (wmh->flags & XUrgencyHint) ? True : False;
+               if(c == sel)
+                       sel->isurgent = False;
+               else
+                       c->isurgent = (wmh->flags & XUrgencyHint) ? True : False;
                XFree(wmh);
        }
 }