@@ -167,8 +167,9 @@ function debugModule(module, runtime) {
167 function setPaused() {
167 function setPaused() {
168 programPaused = true;
168 programPaused = true;
169 clearAsyncCallbacks();
169 clearAsyncCallbacks();
170− tracePath.stopRecording();
171 pauseTime = Date.now();
170 pauseTime = Date.now();
171+ tracePath.stopRecording();
172+ preventInputEvents();
174 function setContinue(position) {
175 function setContinue(position) {
@@ -190,7 +191,8 @@ function debugModule(module, runtime) {
190 recordedEvents = recordedEvents.slice(0, position);
191 recordedEvents = recordedEvents.slice(0, position);
191 tracePath.clearTracesAfter(position);
192 tracePath.clearTracesAfter(position);
192 runtime.debuggerStatus.eventCounter = position;
193 runtime.debuggerStatus.eventCounter = position;
193− executeCallbacks(asyncCallbacks);
194+ executeCallbacks(asyncCallbacks);
195+ permitInputEvents();
195 tracePath.startRecording();
197 tracePath.startRecording();
@@ -199,6 +201,42 @@ function debugModule(module, runtime) {
199 return programPaused;
201 return programPaused;
204+ function preventInputEvents(){
206+ [ "click", "mousemove", "mouseup", "mousedown", "mouseclick"
207+ , "keydown", "keypress", "keyup", "touchstart", "touchend"
208+ , "touchcancel", "touchleave", "touchmove", "pointermove"
209+ , "pointerdown", "pointerup", "pointerover", "pointerout"
210+ , "pointerenter", "pointerleave", "pointercancel"
213+ var gobbler = function(e) {
214+ var evt = e ? e : window.event;
215+ if (evt.stopPropagation) evt.stopPropagation();
216+ if (evt.cabcelBubble !== null) evt.cabcelBubble = true;
217+ if (evt.preventDefault) evt.preventDefault();
221+ var blackHole = document.createElement("div");
222+ blackHole.id = "elmEventGobbler";
223+ blackHole.style.position = "absolute";
224+ blackHole.style.top = "0px";
225+ blackHole.style.left = "0px";
226+ blackHole.style.width = "100%";
227+ blackHole.style.height = "100%";
229+ for (var i = events.length; i-- ;) {
230+ blackHole.addEventListener(events[i], gobbler, true);
232+ runtime.node.appendChild(blackHole);
235+ function permitInputEvents(){
236+ var blackHole = document.getElementById("elmEventGobbler");
237+ blackHole.parentNode.removeChild(blackHole);
203 debuggedModule: debuggedModule,
241 debuggedModule: debuggedModule,
204 signalGraphNodes: signalGraphNodes,
242 signalGraphNodes: signalGraphNodes,