// returns true iff clicked sbool dm_moveMouseAndClick(Rect r, S targetName, O... _) { if (r == null) false; optPar O enabled; // func -> bool print("Moving mouse to " + targetName + "!!!!"); O mover = vmBus_query mouseMover(); if (mover == null) ret false with print("No mover"); callWithImportExport(mover, 'moveMouse, centerOfRect(r)); print("MOVED"); long startTime = sysNow(); while (licensed() && sysNow() < startTime+toMS(waitBeforeClick)) { if (isFalse_callF(enabled)) false; if (isTrue_rcall blocked(mover)) ret false with print("INTERFERENCE, EXITING"); sleepSeconds(0.05); } if (!r.contains(mouseLocation())) ret false with print("Mouse outside of target area, exiting"); print("CLICKING!"); rcall click(mover); print("CLICKED!"); true; }