--- dmenu-4.6/dmenu.c	2015-11-09 06:42:21.000000000 +0800
+++ dmenu.c	2016-05-08 17:05:02.314924000 +0800
@@ -495,7 +495,7 @@
 	XEvent ev;
 
 	while (!XNextEvent(dpy, &ev)) {
-		if (XFilterEvent(&ev, win))
+		if (XFilterEvent(&ev, None))
 			continue;
 		switch(ev.type) {
 		case Expose:
@@ -601,6 +601,7 @@
 	                XNClientWindow, win, XNFocusWindow, win, NULL);
 
 	XMapRaised(dpy, win);
+	XSetInputFocus(dpy, win, RevertToParent, CurrentTime);
 	drw_resize(drw, mw, mh);
 	drawmenu();
 }
@@ -654,6 +655,8 @@
 
 	if (!setlocale(LC_CTYPE, "") || !XSupportsLocale())
 		fputs("warning: no locale support\n", stderr);
+	if (!XSetLocaleModifiers(""))
+		fputs("warning: no locale modifiers support\n", stderr);
 	if (!(dpy = XOpenDisplay(NULL)))
 		die("cannot open display\n");
 	screen = DefaultScreen(dpy);
