1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2026-03-30 12:23:31 +02:00

Cancel macro playback on <C-c>.

This commit is contained in:
Kris Maglione
2008-09-14 21:20:56 +00:00
parent 599b4856e8
commit caf1274df9

View File

@@ -510,6 +510,9 @@ liberator.Events = function () //{{{
if ((now - then) % 1000 < 10) if ((now - then) % 1000 < 10)
liberator.dump("waited: " + (now - then) + " ms\n"); liberator.dump("waited: " + (now - then) + " ms\n");
if (!liberator.modes.isReplaying)
return false;
if (liberator.buffer.loaded > 0) if (liberator.buffer.loaded > 0)
{ {
liberator.sleep(250); liberator.sleep(250);
@@ -842,13 +845,12 @@ liberator.Events = function () //{{{
evt.noremap = noremap; evt.noremap = noremap;
elem.dispatchEvent(evt); elem.dispatchEvent(evt);
// stop feeding keys if page loading failed // stop feeding keys if page loading failed
if (liberator.modes.isReplaying) if (!liberator.modes.isReplaying)
{ return false;
if (!waitForPageLoaded()) if (!waitForPageLoaded())
return; return;
// else // a short break between keys often helps // else // a short break between keys often helps
// liberator.sleep(50); // liberator.sleep(50);
}
} }
return true; return true;
}, },
@@ -1125,6 +1127,7 @@ liberator.Events = function () //{{{
{ {
liberator.modes.isRecording = false; liberator.modes.isRecording = false;
liberator.log("Recorded " + currentMacro + ": " + macros.get(currentMacro), 9); liberator.log("Recorded " + currentMacro + ": " + macros.get(currentMacro), 9);
liberator.echo("Recorded macro '" + currentMacro + "'");
event.preventDefault(); event.preventDefault();
event.stopPropagation(); event.stopPropagation();
return true; return true;
@@ -1136,6 +1139,19 @@ liberator.Events = function () //{{{
} }
} }
if (liberator.modes.isReplaying)
{
// XXX: Prevents using <C-c> in a macro.
if (key == "<C-c>")
{
liberator.modes.isReplaying = false;
liberator.echo("Canceled playback of macro '" + lastMacro + "'");
event.preventDefault();
event.stopPropagation();
return true;
}
}
var stop = true; // set to false if we should NOT consume this event but let Firefox handle it var stop = true; // set to false if we should NOT consume this event but let Firefox handle it
var win = document.commandDispatcher.focusedWindow; var win = document.commandDispatcher.focusedWindow;