X-Git-Url: https://diplodocus.org/git/xorg-xinput/blobdiff_plain/59fc7423bf0e8d29747074449e7a3484cafb2f42..3778f707cca0b9f023a8a5fc86e26776ef6e1b6c:/src/test_xi2.c?ds=inline diff --git a/src/test_xi2.c b/src/test_xi2.c index 39f4f19..9ddb291 100644 --- a/src/test_xi2.c +++ b/src/test_xi2.c @@ -48,6 +48,7 @@ static void print_deviceevent(XIDeviceEvent* event) printf(" device: %d (%d)\n", event->deviceid, event->sourceid); printf(" detail: %d\n", event->detail); + printf(" flags: %s\n", (event->flags & XIKeyRepeat) ? "repeat" : ""); printf(" root: %.2f/%.2f\n", event->root_x, event->root_y); printf(" event: %.2f/%.2f\n", event->event_x, event->event_y); @@ -152,6 +153,7 @@ static void print_enterleave(XILeaveEvent* event) char *mode, *detail; int i; + printf(" device: %d (%d)\n", event->deviceid, event->sourceid); printf(" windows: root 0x%lx event 0x%lx child 0x%ld\n", event->root, event->event, event->child); switch(event->mode) @@ -160,6 +162,8 @@ static void print_enterleave(XILeaveEvent* event) case XINotifyGrab: mode = "NotifyGrab"; break; case XINotifyUngrab: mode = "NotifyUngrab"; break; case XINotifyWhileGrabbed: mode = "NotifyWhileGrabbed"; break; + case XINotifyPassiveGrab: mode = "NotifyPassiveGrab"; break; + case XINotifyPassiveUngrab:mode = "NotifyPassiveUngrab"; break; } switch (event->detail) { @@ -254,6 +258,35 @@ test_sync_grab(Display *display, Window win) printf("Done\n"); } +static const char* type_to_name(int evtype) +{ + const char *name; + + switch(evtype) { + case XI_DeviceChanged: name = "DeviceChanged"; break; + case XI_KeyPress: name = "KeyPress"; break; + case XI_KeyRelease: name = "KeyRelease"; break; + case XI_ButtonPress: name = "ButtonPress"; break; + case XI_ButtonRelease: name = "ButtonRelease"; break; + case XI_Motion: name = "Motion"; break; + case XI_Enter: name = "Enter"; break; + case XI_Leave: name = "Leave"; break; + case XI_FocusIn: name = "FocusIn"; break; + case XI_FocusOut: name = "FocusOut"; break; + case XI_HierarchyChanged: name = "HierarchyChanged"; break; + case XI_PropertyEvent: name = "PropertyEvent"; break; + case XI_RawKeyPress: name = "RawKeyPress"; break; + case XI_RawKeyRelease: name = "RawKeyRelease"; break; + case XI_RawButtonPress: name = "RawButtonPress"; break; + case XI_RawButtonRelease: name = "RawButtonRelease"; break; + case XI_RawMotion: name = "RawMotion"; break; + default: + name = "unknown event type"; break; + } + return name; +} + + int test_xi2(Display *display, int argc, @@ -300,10 +333,10 @@ test_xi2(Display *display, XISetMask(mask.mask, XI_Motion); XIGrabButton(display, 2, 1, win, None, GrabModeAsync, GrabModeAsync, False, &mask, nmods, modifiers); - XIGrabKeysym(display, 3, 0x71, win, GrabModeAsync, GrabModeAsync, + XIGrabKeycode(display, 3, 24 /* q */, win, GrabModeAsync, GrabModeAsync, False, &mask, nmods, modifiers); XIUngrabButton(display, 3, 1, win, nmods - 2, &modifiers[2]); - XIUngrabKeysym(display, 3, 0x71, win, nmods - 2, &modifiers[2]); + XIUngrabKeycode(display, 3, 24 /* q */, win, nmods - 2, &modifiers[2]); } mask.deviceid = XIAllMasterDevices; @@ -337,7 +370,7 @@ test_xi2(Display *display, cookie->type == GenericEvent && cookie->extension == xi_opcode) { - printf("EVENT type %d\n", cookie->evtype); + printf("EVENT type %d (%s)\n", cookie->evtype, type_to_name(cookie->evtype)); switch (cookie->evtype) { case XI_DeviceChanged: