summaryrefslogtreecommitdiffstats
path: root/src/libdraw/x11-mouse.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2003-10-11 02:47:43 +0000
committerrsc <devnull@localhost>2003-10-11 02:47:43 +0000
commit161060a46346fa0beeb48b55ed28b2cd330bc4e8 (patch)
treeddcba6ab6af148fefd7667f494485ebc3675fa3f /src/libdraw/x11-mouse.c
parent4af386f434d5ca3de733951d4f73dd134e879cc2 (diff)
downloadplan9port-161060a46346fa0beeb48b55ed28b2cd330bc4e8.tar.gz
plan9port-161060a46346fa0beeb48b55ed28b2cd330bc4e8.zip
Lots of X fixes.
Diffstat (limited to 'src/libdraw/x11-mouse.c')
-rw-r--r--src/libdraw/x11-mouse.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/libdraw/x11-mouse.c b/src/libdraw/x11-mouse.c
index c6a26851..6b5b3922 100644
--- a/src/libdraw/x11-mouse.c
+++ b/src/libdraw/x11-mouse.c
@@ -48,6 +48,7 @@ void
_ioproc(void *arg)
{
int one;
+ ulong mask;
Mouse m;
Mousectl *mc;
XEvent xevent;
@@ -57,9 +58,10 @@ _ioproc(void *arg)
threadsetname("mouseproc");
memset(&m, 0, sizeof m);
mc->pid = getpid();
+ mask = MouseMask|ExposureMask|StructureNotifyMask;
+ XSelectInput(_x.mousecon, _x.drawable, mask);
for(;;){
- XSelectInput(_x.mousecon, _x.drawable, MouseMask|ExposureMask|StructureNotifyMask);
- XWindowEvent(_x.mousecon, _x.drawable, MouseMask|ExposureMask|StructureNotifyMask, &xevent);
+ XNextEvent(_x.mousecon, &xevent);
switch(xevent.type){
case Expose:
xexpose(&xevent, _x.mousecon);
@@ -68,6 +70,9 @@ _ioproc(void *arg)
if(xconfigure(&xevent, _x.mousecon))
nbsend(mc->resizec, &one);
continue;
+ case SelectionRequest:
+ xselect(&xevent, _x.mousecon);
+ continue;
case ButtonPress:
case ButtonRelease:
case MotionNotify: