@@ -297,4 +297,29 @@ TestCase {
297 event.release(0 /* touchId */, x, y)
297 event.release(0 /* touchId */, x, y)
298 event.commit()
298 event.commit()
302+ In qmltests, sequences of touch events are sent all at once, unlike in "real life".
303+ Also qmltests might run really slowly, e.g. when run from inside virtual machines.
304+ Thus to remove a variable that qmltests cannot really control, namely time, this
305+ function removes all constraints from DirectionalDragAreas that are sensible to
308+ This effectively makes DirectionalDragAreas easier to fool.
310+ function removeTimeConstraintsFromDirectionalDragAreas(item) {
312+ // use duck-typing to identify a DirectionalDragArea
313+ if (item.minSpeed != undefined
314+ && item.maxSilenceTime != undefined
315+ && item.compositionTime != undefined) {
317+ item.maxSilenceTime = 60 * 60 * 1000;
318+ item.compositionTime = 0;
320+ for (var i in item.children) {
321+ removeTimeConstraintsFromDirectionalDragAreas(item.children[i]);