diff options
author | Walter Harms <wharms@bfs.de> | 2019-12-22 18:29:38 +0100 |
---|---|---|
committer | Walter Harms <wharms@bfs.de> | 2019-12-22 18:29:38 +0100 |
commit | 6cc7763e4bb7298a6c81f81015d6e750d6b4ea5c (patch) | |
tree | 48164c475d0985950946854668e9da4b84e13ad5 /src/Pointer.c | |
parent | b2c33d42605147831c48a8946e90f356340e709e (diff) | |
parent | 51cbf52b7668ad46a428dabe8e79e6819e825b20 (diff) | |
download | xorg-lib-libXt-6cc7763e4bb7298a6c81f81015d6e750d6b4ea5c.tar.gz |
Merge branch 'master' of ssh://gitlab.freedesktop.org/xorg/lib/libxt
Diffstat (limited to 'src/Pointer.c')
-rw-r--r-- | src/Pointer.c | 86 |
1 files changed, 40 insertions, 46 deletions
diff --git a/src/Pointer.c b/src/Pointer.c index 70b0ea8..ad322c2 100644 --- a/src/Pointer.c +++ b/src/Pointer.c @@ -54,60 +54,54 @@ in this Software without prior written authorization from The Open Group. #include "IntrinsicI.h" #include "PassivGraI.h" - #define AllButtonsMask (Button1Mask | Button2Mask | Button3Mask | Button4Mask | Button5Mask) -Widget _XtProcessPointerEvent( - XButtonEvent *event, - Widget widget, - XtPerDisplayInput pdi) +Widget +_XtProcessPointerEvent(XButtonEvent *event, + Widget widget, + XtPerDisplayInput pdi) { - XtDevice device = &pdi->pointer; - XtServerGrabPtr newGrab = NULL, devGrab = &device->grab; - Widget dspWidget = NULL; - Boolean deactivateGrab = FALSE; - - switch (event->type) - { - case ButtonPress: - { - if (!IsServerGrab(device->grabType)) - { - Cardinal i; - - for (i = (Cardinal) pdi->traceDepth; - i > 0 && !newGrab; - i--) - newGrab = _XtCheckServerGrabsOnWidget((XEvent*)event, - pdi->trace[i-1], - POINTER); - } - if (newGrab) - { - /* Activate the grab */ - device->grab = *newGrab; - device->grabType = XtPassiveServerGrab; - } - } - break; - - case ButtonRelease: - { - if ((device->grabType == XtPassiveServerGrab) && - !(event->state & (unsigned)(~(Button1Mask << (event->button - 1))) & - AllButtonsMask)) - deactivateGrab = TRUE; - } - break; - } + XtDevice device = &pdi->pointer; + XtServerGrabPtr newGrab = NULL, devGrab = &device->grab; + Widget dspWidget = NULL; + Boolean deactivateGrab = FALSE; + + switch (event->type) { + case ButtonPress: + { + if (!IsServerGrab(device->grabType)) { + Cardinal i; + + for (i = (Cardinal) pdi->traceDepth; i > 0 && !newGrab; i--) + newGrab = _XtCheckServerGrabsOnWidget((XEvent *) event, + pdi->trace[i - 1], + POINTER); + } + if (newGrab) { + /* Activate the grab */ + device->grab = *newGrab; + device->grabType = XtPassiveServerGrab; + } + } + break; + + case ButtonRelease: + { + if ((device->grabType == XtPassiveServerGrab) && + !(event->state & (unsigned) (~(Button1Mask << (event->button - 1))) + & AllButtonsMask)) + deactivateGrab = TRUE; + } + break; + } if (IsServerGrab(device->grabType) && !(devGrab)->ownerEvents) - dspWidget = (devGrab)->widget; + dspWidget = (devGrab)->widget; else - dspWidget = widget; + dspWidget = widget; if (deactivateGrab) - device->grabType = XtNoServerGrab; + device->grabType = XtNoServerGrab; return dspWidget; } |