Mercurial > repos > tabletprog
changeset 29:18cec540238a
Prevent event bubbling so lambda click handler doesn't get called when clicking on an element inside it
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Thu, 05 Apr 2012 21:06:43 -0700 |
parents | 93bbc4c8be95 |
children | 608eb70fe261 |
files | editor.js editor.tp |
diffstat | 2 files changed, 13 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- 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); } })); }
--- 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 <- {