# HG changeset patch # User Mike Pavone # Date 1333685203 25200 # Node ID 18cec540238aa50c7102aa832174cf68969dadd0 # Parent 93bbc4c8be95c2d18514ec6c580cc59bab824b7c Prevent event bubbling so lambda click handler doesn't get called when clicking on an element inside it diff -r 93bbc4c8be95 -r 18cec540238a editor.js --- a/editor.js Thu Apr 05 19:06:10 2012 -0700 +++ b/editor.js Thu Apr 05 21:06:43 2012 -0700 @@ -14,8 +14,8 @@ var astNode = this; var el = newEl('div', { className: 'lambda', - onclick: function() { - return mainModule.lambdaClick(this, astNode); + onclick: function(event) { + mainModule.lambdaClick(this, astNode, event); } }); var args = newEl('div', { @@ -96,8 +96,8 @@ base.appendChild(newEl('span', { textContent: parts[i] + (this.receiver && parts.length == 1 ? '' : ':'), className: 'funpart', - onclick: function() { - return mainModule.funClick(this, astNode); + onclick: function(event) { + mainModule.funClick(this, astNode, event); }})); if (this.args[i]) { this.args[i].toHTML(base); @@ -115,8 +115,8 @@ node.appendChild(newEl('span', { className: 'symbol', textContent: this.name, - onclick: function() { - return mainModule.symbolClick(this, astNode); + onclick: function(event) { + mainModule.symbolClick(this, astNode, event); } })); } diff -r 93bbc4c8be95 -r 18cec540238a editor.tp --- a/editor.tp Thu Apr 05 19:06:10 2012 -0700 +++ b/editor.tp Thu Apr 05 21:06:43 2012 -0700 @@ -97,28 +97,29 @@ } } -symbolClick <- :domnode astnode { +symbolClick <- :domnode astnode event { console log: astnode selectNode: domnode popInscope: ((astnode symbols) allSymbols) onClick: :key { domnode textContent!: key astnode name!: key } - + event stopPropagation } -funClick <- :domnode astnode { +funClick <- :domnode astnode event { selectParent: domnode selectQuery: ".selectParent > .funpart" in: (domnode parentNode) symtable <- astnode symbols syms <- filter: (symtable allSymbols) :sym { isLambda: ((symtable find: sym) def) } - popInscope: syms + popInscope: syms onClick: {} + event stopPropagation } -lambdaClick <- :domnode astnode { - symbolClick: domnode astnode +lambdaClick <- :domnode astnode event { + symbolClick: domnode astnode event } main <- {