event.c
changeset 490 303d3384720e
parent 489 d34374cbe926
child 491 12395ef46d97
equal deleted inserted replaced
489:d34374cbe926 490:303d3384720e
    35 	c->ismax = False;
    35 	c->ismax = False;
    36 	XQueryPointer(dpy, root, &dummy, &dummy, &x1, &y1, &di, &di, &dui);
    36 	XQueryPointer(dpy, root, &dummy, &dummy, &x1, &y1, &di, &di, &dui);
    37 	for(;;) {
    37 	for(;;) {
    38 		XMaskEvent(dpy, MOUSEMASK | ExposureMask, &ev);
    38 		XMaskEvent(dpy, MOUSEMASK | ExposureMask, &ev);
    39 		switch (ev.type) {
    39 		switch (ev.type) {
       
    40 		case ButtonRelease:
       
    41 			XUngrabPointer(dpy, CurrentTime);
       
    42 			return;
    40 		case Expose:
    43 		case Expose:
    41 			handler[Expose](&ev);
    44 			handler[Expose](&ev);
    42 			break;
    45 			break;
    43 		case MotionNotify:
    46 		case MotionNotify:
    44 			XSync(dpy, False);
    47 			XSync(dpy, False);
    45 			c->x = ocx + (ev.xmotion.x - x1);
    48 			c->x = ocx + (ev.xmotion.x - x1);
    46 			c->y = ocy + (ev.xmotion.y - y1);
    49 			c->y = ocy + (ev.xmotion.y - y1);
    47 			resize(c, False, TopLeft);
    50 			resize(c, False, TopLeft);
    48 			break;
    51 			break;
    49 		case ButtonRelease:
       
    50 			XUngrabPointer(dpy, CurrentTime);
       
    51 			return;
       
    52 		}
    52 		}
    53 	}
    53 	}
    54 }
    54 }
    55 
    55 
    56 static void
    56 static void
    68 	c->ismax = False;
    68 	c->ismax = False;
    69 	XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w, c->h);
    69 	XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w, c->h);
    70 	for(;;) {
    70 	for(;;) {
    71 		XMaskEvent(dpy, MOUSEMASK | ExposureMask, &ev);
    71 		XMaskEvent(dpy, MOUSEMASK | ExposureMask, &ev);
    72 		switch(ev.type) {
    72 		switch(ev.type) {
       
    73 		case ButtonRelease:
       
    74 			XUngrabPointer(dpy, CurrentTime);
       
    75 			return;
    73 		case Expose:
    76 		case Expose:
    74 			handler[Expose](&ev);
    77 			handler[Expose](&ev);
    75 			break;
    78 			break;
    76 		case MotionNotify:
    79 		case MotionNotify:
    77 			XSync(dpy, False);
    80 			XSync(dpy, False);
    85 				sticky = (ocy <= ev.xmotion.y) ? TopLeft : BotLeft;
    88 				sticky = (ocy <= ev.xmotion.y) ? TopLeft : BotLeft;
    86 			else
    89 			else
    87 				sticky = (ocy <= ev.xmotion.y) ? TopRight : BotRight;
    90 				sticky = (ocy <= ev.xmotion.y) ? TopRight : BotRight;
    88 			resize(c, True, sticky);
    91 			resize(c, True, sticky);
    89 			break;
    92 			break;
    90 		case ButtonRelease:
       
    91 			XUngrabPointer(dpy, CurrentTime);
       
    92 			return;
       
    93 		}
    93 		}
    94 	}
    94 	}
    95 }
    95 }
    96 
    96 
    97 static void
    97 static void