Properly clear the last entered character
[slock.git] / slock.c
diff --git a/slock.c b/slock.c
index 61fe9ee..5ae738c 100644 (file)
--- a/slock.c
+++ b/slock.c
@@ -177,7 +177,7 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
                                break;
                        case XK_BackSpace:
                                if (len)
-                                       passwd[len--] = '\0';
+                                       passwd[--len] = '\0';
                                break;
                        default:
                                if (num && !iscntrl((int)buf[0]) &&
@@ -209,10 +209,13 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
                                                XResizeWindow(dpy, locks[screen]->win,
                                                              rre->width, rre->height);
                                        XClearWindow(dpy, locks[screen]->win);
+                                       break;
                                }
                        }
-               } else for (screen = 0; screen < nscreens; screen++)
-                       XRaiseWindow(dpy, locks[screen]->win);
+               } else {
+                       for (screen = 0; screen < nscreens; screen++)
+                               XRaiseWindow(dpy, locks[screen]->win);
+               }
        }
 }