mirror of
https://github.com/Jermolene/TiddlyWiki5.git
synced 2026-01-16 06:11:40 -08:00
MessageCatcher: Fix stack overflow when re-issuing a trapped message
This makes it possible to trap a message and then re-issue the same message within the action string without an infinite loop.
This commit is contained in:
parent
0be39cfbc2
commit
bdbb884be0
1 changed files with 7 additions and 0 deletions
|
|
@ -36,9 +36,14 @@ MessageCatcherWidget.prototype.render = function(parent,nextSibling) {
|
|||
// Helper to add an event handler
|
||||
var addEventHandler = function(type,actions) {
|
||||
if(type && actions) {
|
||||
var isActionStringExecuting = false;
|
||||
self.addEventListener(
|
||||
type,
|
||||
function(event) {
|
||||
// Don't trap the event if it came from one of our action handlers
|
||||
if(isActionStringExecuting) {
|
||||
return true;
|
||||
}
|
||||
// Collect all the event properties into variables
|
||||
var collectProps = function(obj,prefix) {
|
||||
prefix = prefix || "";
|
||||
|
|
@ -60,7 +65,9 @@ MessageCatcherWidget.prototype.render = function(parent,nextSibling) {
|
|||
{
|
||||
modifier: $tw.keyboardManager.getEventModifierKeyDescriptor(event)
|
||||
});
|
||||
isActionStringExecuting = true;
|
||||
self.invokeActionString(actions,self,event,variables);
|
||||
isActionStringExecuting = false;
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue