diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2013-07-09 12:16:47 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2013-07-09 12:25:45 +1000 |
commit | 1f2effef0b7c18ce123e434845efd90fc9644b6c (patch) | |
tree | 41c7ceab5023091aecac3dc017c1acdfb6cdcbef | |
parent | 192418d1deb99bba81292af8c8c889ac31760e9e (diff) |
server/grab: move some helpers up the class hierarchy
We'll need one of them in a new test case
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r-- | tests/server/grab.cpp | 112 |
1 files changed, 57 insertions, 55 deletions
diff --git a/tests/server/grab.cpp b/tests/server/grab.cpp index 7c2b7a0..2119fa4 100644 --- a/tests/server/grab.cpp +++ b/tests/server/grab.cpp @@ -681,6 +681,63 @@ public: "Option \"CoreKeyboard\" \"on\"\n"); config.WriteConfig(); } + + /** + * Return a new synchronized client given our default server connection. + * Client is initialised for XI 2.2 + */ + virtual ::Display* NewClient(void) { + ::Display *d = XOpenDisplay(server.GetDisplayString().c_str()); + if (!d) + ADD_FAILURE() << "Failed to open display for new client.\n"; + XSynchronize(d, True); + int major = 2, minor = 2; + if (XIQueryVersion(d, &major, &minor) != Success) + ADD_FAILURE() << "XIQueryVersion failed on new client.\n"; + return d; + } + + virtual void GrabDevice(::Display *dpy, int deviceid, Window win, bool ownership = false) + { + XIEventMask mask; + mask.deviceid = deviceid; + mask.mask_len = XIMaskLen(XI_TouchOwnership); + mask.mask = new unsigned char[mask.mask_len](); + + XISetMask(mask.mask, XI_TouchBegin); + XISetMask(mask.mask, XI_TouchEnd); + XISetMask(mask.mask, XI_TouchUpdate); + + if (ownership) + XISetMask(mask.mask, XI_TouchOwnership); + + ASSERT_EQ(Success, XIGrabDevice(dpy, deviceid, + win, CurrentTime, None, + GrabModeAsync, GrabModeAsync, + False, &mask)); + delete[] mask.mask; + XSync(dpy, False); + } + + virtual void GrabPointer(::Display *dpy, int deviceid, Window win) + { + XIEventMask mask; + mask.deviceid = deviceid; + mask.mask_len = XIMaskLen(XI_TouchOwnership); + mask.mask = new unsigned char[mask.mask_len](); + + XISetMask(mask.mask, XI_ButtonPress); + XISetMask(mask.mask, XI_ButtonRelease); + XISetMask(mask.mask, XI_Motion); + + ASSERT_EQ(Success, XIGrabDevice(dpy, deviceid, + win, CurrentTime, None, + GrabModeAsync, GrabModeAsync, + False, &mask)); + delete[] mask.mask; + XSync(dpy, False); + } + }; TEST_F(TouchGrabTest, PassiveTouchGrabPassedToTouchClient) @@ -1482,47 +1539,6 @@ public: XSync(dpy, False); } - void GrabDevice(::Display *dpy, int deviceid, Window win, bool ownership = false) - { - XIEventMask mask; - mask.deviceid = deviceid; - mask.mask_len = XIMaskLen(XI_TouchOwnership); - mask.mask = new unsigned char[mask.mask_len](); - - XISetMask(mask.mask, XI_TouchBegin); - XISetMask(mask.mask, XI_TouchEnd); - XISetMask(mask.mask, XI_TouchUpdate); - - if (ownership) - XISetMask(mask.mask, XI_TouchOwnership); - - ASSERT_EQ(Success, XIGrabDevice(dpy, deviceid, - win, CurrentTime, None, - GrabModeAsync, GrabModeAsync, - False, &mask)); - delete[] mask.mask; - XSync(dpy, False); - } - - void GrabPointer(::Display *dpy, int deviceid, Window win) - { - XIEventMask mask; - mask.deviceid = deviceid; - mask.mask_len = XIMaskLen(XI_TouchOwnership); - mask.mask = new unsigned char[mask.mask_len](); - - XISetMask(mask.mask, XI_ButtonPress); - XISetMask(mask.mask, XI_ButtonRelease); - XISetMask(mask.mask, XI_Motion); - - ASSERT_EQ(Success, XIGrabDevice(dpy, deviceid, - win, CurrentTime, None, - GrabModeAsync, GrabModeAsync, - False, &mask)); - delete[] mask.mask; - XSync(dpy, False); - } - void SelectTouchOnWindow(::Display *dpy, Window win, bool ownership = false) { XIEventMask mask; @@ -1542,20 +1558,6 @@ public: XSync(dpy, False); } - /** - * Return a new synchronized client given our default server connection. - * Client is initialised for XI 2.2 - */ - ::Display* NewClient(void) { - ::Display *d = XOpenDisplay(server.GetDisplayString().c_str()); - if (!d) - ADD_FAILURE() << "Failed to open display for new client.\n"; - XSynchronize(d, True); - int major = 2, minor = 2; - if (XIQueryVersion(d, &major, &minor) != Success) - ADD_FAILURE() << "XIQueryVersion failed on new client.\n"; - return d; - } }; TEST_F(TouchOwnershipTest, OwnershipAfterRejectTouch) |