@@ -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,51 @@ 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 ignore = function(e) {
214+ var evt = e ? e : window.event;
215+ if (evt.stopPropagation) {
216+ evt.stopPropagation();
218+ if (evt.cabcelBubble !== null) {
219+ evt.cabcelBubble = true;
221+ if (evt.preventDefault) {
222+ evt.preventDefault();
227+ var ignoringDiv = document.getElementById("elmEventIgnorer");
229+ ignoringDiv = document.createElement("div");
230+ ignoringDiv.id = "elmEventIgnorer";
231+ ignoringDiv.style.position = "absolute";
232+ ignoringDiv.style.top = "0px";
233+ ignoringDiv.style.left = "0px";
234+ ignoringDiv.style.width = "100%";
235+ ignoringDiv.style.height = "100%";
237+ for (var i = events.length; i-- ;) {
238+ ignoringDiv.addEventListener(events[i], ignore, true);
240+ runtime.node.appendChild(ignoringDiv);
244+ function permitInputEvents(){
245+ var ignoringDiv = document.getElementById("elmEventIgnorer");
246+ ignoringDiv.parentNode.removeChild(ignoringDiv);
203 debuggedModule: debuggedModule,
250 debuggedModule: debuggedModule,
204 signalGraphNodes: signalGraphNodes,
251 signalGraphNodes: signalGraphNodes,