From: Chase Douglas <[email protected]> Clients can't select for the three touch events individually, so ensure the test doesn't try to do so.
Signed-off-by: Chase Douglas <[email protected]> --- test/xi2/protocol-xiselectevents.c | 48 ++++++++++++++++++++++++++++++++++++ 1 files changed, 48 insertions(+), 0 deletions(-) diff --git a/test/xi2/protocol-xiselectevents.c b/test/xi2/protocol-xiselectevents.c index fe1c26d..631a581 100644 --- a/test/xi2/protocol-xiselectevents.c +++ b/test/xi2/protocol-xiselectevents.c @@ -159,7 +159,18 @@ static void request_XISelectEvents_masks(xXISelectEventsReq *req) memset(bits, 0, mask->mask_len * 4); for (j = 0; j <= XI_LASTEVENT; j++) { + /* Can't select for these events alone */ + if (j == XI_TouchMotion || j == XI_TouchEnd) + continue; + SetBit(bits, j); + + /* Must select for all touch events at once */ + if (j == XI_TouchBegin) { + SetBit(bits, XI_TouchMotion); + SetBit(bits, XI_TouchEnd); + } + request_XISelectEvent(req, Success); ClearBit(bits, j); } @@ -175,7 +186,18 @@ static void request_XISelectEvents_masks(xXISelectEventsReq *req) for (j = 0; j <= XI_LASTEVENT; j++) { + /* Can't select for these events alone */ + if (j == XI_TouchMotion || j == XI_TouchEnd) + continue; + SetBit(bits, j); + + /* Must select for all touch events at once */ + if (j == XI_TouchBegin) { + SetBit(bits, XI_TouchMotion); + SetBit(bits, XI_TouchEnd); + } + request_XISelectEvent(req, Success); } @@ -189,7 +211,18 @@ static void request_XISelectEvents_masks(xXISelectEventsReq *req) for (j = XI_LASTEVENT + 1; j < mask->mask_len * 4; j++) { + /* Can't select for these events alone */ + if (j == XI_TouchMotion || j == XI_TouchEnd) + continue; + SetBit(bits, j); + + /* Must select for all touch events at once */ + if (j == XI_TouchBegin) { + SetBit(bits, XI_TouchMotion); + SetBit(bits, XI_TouchEnd); + } + request_XISelectEvent(req, BadValue); ClearBit(bits, j); } @@ -202,7 +235,18 @@ static void request_XISelectEvents_masks(xXISelectEventsReq *req) memset(bits, 0, mask->mask_len * 4); for (j = 0; j <= XI_LASTEVENT; j++) { + /* Can't select for these events alone */ + if (j == XI_TouchMotion || j == XI_TouchEnd) + continue; + SetBit(bits, j); + + /* Must select for all touch events at once */ + if (j == XI_TouchBegin) { + SetBit(bits, XI_TouchMotion); + SetBit(bits, XI_TouchEnd); + } + request_XISelectEvent(req, Success); } @@ -231,6 +275,10 @@ static void request_XISelectEvents_masks(xXISelectEventsReq *req) for (j = 0; j <= XI_LASTEVENT; j++) SetBit(bits, j); ClearBit(bits, XI_HierarchyChanged); + /* Can't select for touch events on all master devices */ + ClearBit(bits, XI_TouchBegin); + ClearBit(bits, XI_TouchMotion); + ClearBit(bits, XI_TouchEnd); for (j = 1; j < 6; j++) { mask->deviceid = j; -- 1.7.1 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
