minor fixes; hide some routines
diff --git a/src/libdraw/devdraw.c b/src/libdraw/devdraw.c
index 4f35cd1..a3c4e5a 100644
--- a/src/libdraw/devdraw.c
+++ b/src/libdraw/devdraw.c
@@ -13,8 +13,6 @@
 #define NHASH (1<<5)
 #define HASHMASK (NHASH-1)
 
-extern void flushmemscreen(Rectangle);
-
 typedef struct Client Client;
 typedef struct Draw Draw;
 typedef struct DImage DImage;
@@ -257,7 +255,7 @@
 	}
 	/* emit current state */
 	if(flushrect.min.x < flushrect.max.x)
-		flushmemscreen(flushrect);
+		_flushmemscreen(flushrect);
 	flushrect = r;
 	waste = 0;
 }
@@ -294,7 +292,7 @@
 drawflush(void)
 {
 	if(flushrect.min.x < flushrect.max.x)
-		flushmemscreen(flushrect);
+		_flushmemscreen(flushrect);
 	flushrect = Rect(10000, 10000, -10000, -10000);
 }
 
diff --git a/src/libdraw/x11-event.c b/src/libdraw/x11-event.c
index 0548b62..8512acc 100644
--- a/src/libdraw/x11-event.c
+++ b/src/libdraw/x11-event.c
@@ -53,6 +53,8 @@
 		}
 	}
 
+	xmask |= EnterWindowMask|LeaveWindowMask;
+
 	XSelectInput(_x.display, _x.drawable, xmask);
 again:
 	XWindowEvent(_x.display, _x.drawable, xmask, &xevent);
diff --git a/src/libdraw/x11-init.c b/src/libdraw/x11-init.c
index 4ab2979..b7638a7 100644
--- a/src/libdraw/x11-init.c
+++ b/src/libdraw/x11-init.c
@@ -359,7 +359,7 @@
 
 		geom = smprint("%s.geometry", label);
 		if(geom && XrmGetResource(database, geom, nil, &geomrestype, &geomres))
-			mask = XParseGeometry(geomres.addr, &x, &y, &width, &height);
+			mask = XParseGeometry(geomres.addr, &x, &y, (uint*)&width, (uint*)&height);
 		free(geom);
 
 		if((mask & WidthValue) && (mask & HeightValue)){
@@ -552,7 +552,7 @@
 }
 
 int
-drawsetlabel(Display *d, char *label)
+drawsetlabel(char *label)
 {
 	char *argv[2];
 	XClassHint classhint;
@@ -775,7 +775,7 @@
 }
 
 void
-flushmemscreen(Rectangle r)
+_flushmemscreen(Rectangle r)
 {
 	if(_x.nextscreenpm != _x.screenpm){
 		qlock(&_x.screenlock);
diff --git a/src/libdraw/x11-itrans.c b/src/libdraw/x11-itrans.c
index 649db96..f1c72ee 100644
--- a/src/libdraw/x11-itrans.c
+++ b/src/libdraw/x11-itrans.c
@@ -103,7 +103,7 @@
 			break;
 		default:		/* not ISO-1 or tty control */
 			if(k>0xff) {
-				k = keysym2ucs(k);
+				k = _p9keysym2ucs(k);
 				if(k==-1) return -1;
 			}
 		}
diff --git a/src/libdraw/x11-keysym2ucs.c b/src/libdraw/x11-keysym2ucs.c
index 6306706..572f01d 100644
--- a/src/libdraw/x11-keysym2ucs.c
+++ b/src/libdraw/x11-keysym2ucs.c
@@ -824,7 +824,7 @@
 };
 
 VISIBLE
-long keysym2ucs(KeySym keysym)
+long _p9keysym2ucs(KeySym keysym)
 {
     int min = 0;
     int max = sizeof(keysymtab) / sizeof(struct codepair) - 1;
diff --git a/src/libdraw/x11-keysym2ucs.h b/src/libdraw/x11-keysym2ucs.h
index 1f23ac6..77050e1 100644
--- a/src/libdraw/x11-keysym2ucs.h
+++ b/src/libdraw/x11-keysym2ucs.h
@@ -6,4 +6,4 @@
 
 #include <X11/X.h>
 
-long keysym2ucs(KeySym keysym);
+long _p9keysym2ucs(KeySym keysym);