aboutsummaryrefslogtreecommitdiff
path: root/src/libdraw/x11-mouse.c
diff options
context:
space:
mode:
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: