if (fingerCount <= 0 || fingerCount > 3)
throw EvaluationFailure{} << "invalid finger count (must be between 1 and 3)";
- auto coord = Point{ 300, 300 };
+ auto coord = Point{ 200, 200 };
if (!target.isEmpty())
{
if (target.isString()) {
variables["DOUBLE_TAP"] = generateTapFunction(2);
variables["TRIPLE_TAP"] = generateTapFunction(3);
- auto generateFlickFunction = [&](int x0, int y0, int x1, int y1) {
- return EvaluationValueFunction{ [ &, x0, y0, x1, y1](EvaluationValue fingers) -> EvaluationValue {
+ auto generateFlickFunction = [&](int dx, int dy) {
+ return EvaluationValueFunction{ [ &, dx, dy](EvaluationValue fingers) -> EvaluationValue {
auto root = getVisibleRoot();
if (!root) throw EvaluationFailure{} << "no visible root (context changed didn't happen)";
ASSERT(root->getObject());
executeOnMainThread([&]()
{
+ auto dims = Singleton<UniversalSwitch>::instance().getMainWindow()->getDimensions();
+ auto mx = dims.getCenterPoint();
+ auto x0 = mx.x - dx / 2;
+ auto x1 = x0 + dx;
+ auto y0 = mx.y - dy / 2;
+ auto y1 = y0 + dy;
utils::generateDragGesture(x0, y0, x1, y1, 20, 0.0, fingerCount);
});
std::this_thread::sleep_for(std::chrono::milliseconds{ 600 });
return EvaluationValue{};
}, { { "fingers", 1 } } };
};
- variables["FLICK_RIGHT"] = generateFlickFunction(200, 200, 400, 200);
- variables["FLICK_LEFT"] = generateFlickFunction(400, 200, 200, 200);
- variables["FLICK_UP"] = generateFlickFunction(300, 600, 300, 200);
- variables["FLICK_DOWN"] = generateFlickFunction(300, 200, 300, 600);
+ variables["FLICK_RIGHT"] = generateFlickFunction(300, 0);
+ variables["FLICK_LEFT"] = generateFlickFunction(-300, 0);
+ variables["FLICK_UP"] = generateFlickFunction(0, -300);
+ variables["FLICK_DOWN"] = generateFlickFunction(0, 300);
auto generateWheelTurnFunction = [&]() {
return EvaluationValueFunction{ [&](bool clockwise, int multiplicity) -> EvaluationValue {