Instantiate j var outside #ifdef XINEMARA directive because it is used in loop outsid...
[dmenu.git] / dmenu.c
diff --git a/dmenu.c b/dmenu.c
index d605ab4..3c261c0 100644 (file)
--- a/dmenu.c
+++ b/dmenu.c
@@ -467,10 +467,12 @@ paste(void)
        Atom da;
 
        /* we have been given the current selection, now insert it into input */
-       XGetWindowProperty(dpy, win, utf8, 0, (sizeof text / 4) + 1, False,
-                          utf8, &da, &di, &dl, &dl, (unsigned char **)&p);
-       insert(p, (q = strchr(p, '\n')) ? q - p : (ssize_t)strlen(p));
-       XFree(p);
+       if (XGetWindowProperty(dpy, win, utf8, 0, (sizeof text / 4) + 1, False,
+                          utf8, &da, &di, &dl, &dl, (unsigned char **)&p)
+           == Success && p) {
+               insert(p, (q = strchr(p, '\n')) ? q - p : (ssize_t)strlen(p));
+               XFree(p);
+       }
        drawmenu();
 }
 
@@ -539,22 +541,21 @@ run(void)
 static void
 setup(void)
 {
-       int x, y, i = 0;
+       int x, y, i, j = 0;
        unsigned int du;
        XSetWindowAttributes swa;
        XIM xim;
        Window w, dw, *dws;
        XWindowAttributes wa;
+       XClassHint ch = {"dmenu", "dmenu"};
 #ifdef XINERAMA
        XineramaScreenInfo *info;
        Window pw;
-       int a, j, di, n, area = 0;
+       int a, di, n, area = 0;
 #endif
-
        /* init appearance */
-       scheme[SchemeNorm] = drw_scm_create(drw, colors[SchemeNorm], 2);
-       scheme[SchemeSel] = drw_scm_create(drw, colors[SchemeSel], 2);
-       scheme[SchemeOut] = drw_scm_create(drw, colors[SchemeOut], 2);
+       for (j = 0; j < SchemeLast; j++)
+               scheme[j] = drw_scm_create(drw, colors[j], 2);
 
        clip = XInternAtom(dpy, "CLIPBOARD",   False);
        utf8 = XInternAtom(dpy, "UTF8_STRING", False);
@@ -613,6 +614,7 @@ setup(void)
        win = XCreateWindow(dpy, parentwin, x, y, mw, mh, 0,
                            CopyFromParent, CopyFromParent, CopyFromParent,
                            CWOverrideRedirect | CWBackPixel | CWEventMask, &swa);
+       XSetClassHint(dpy, win, &ch);
 
        /* open input methods */
        xim = XOpenIM(dpy, NULL, NULL, NULL);