From 2e59d770f7e8870a5172b351a751475f511043b4 Mon Sep 17 00:00:00 2001 From: Saq Imtiaz Date: Sat, 18 Sep 2021 16:08:15 +0200 Subject: [PATCH] Fix eventcatcher widget: check for event properties before accessing (#6048) --- core/modules/widgets/eventcatcher.js | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/core/modules/widgets/eventcatcher.js b/core/modules/widgets/eventcatcher.js index ac5e19baf..7a905d51e 100644 --- a/core/modules/widgets/eventcatcher.js +++ b/core/modules/widgets/eventcatcher.js @@ -76,20 +76,22 @@ EventWidget.prototype.render = function(parent,nextSibling) { variables["tv-selectednode-posy"] = selectedNode.offsetTop.toString(); variables["tv-selectednode-width"] = selectedNode.offsetWidth.toString(); variables["tv-selectednode-height"] = selectedNode.offsetHeight.toString(); + + if(event.clientX && event.clientY) { + //Add variables for event X and Y position relative to selected node + selectedNodeRect = selectedNode.getBoundingClientRect(); + variables["event-fromselected-posx"] = (event.clientX - selectedNodeRect.left).toString(); + variables["event-fromselected-posy"] = (event.clientY - selectedNodeRect.top).toString(); - //Add variables for event X and Y position relative to selected node - selectedNodeRect = selectedNode.getBoundingClientRect(); - variables["event-fromselected-posx"] = (event.clientX - selectedNodeRect.left).toString(); - variables["event-fromselected-posy"] = (event.clientY - selectedNodeRect.top).toString(); + //Add variables for event X and Y position relative to event catcher node + catcherNodeRect = self.domNode.getBoundingClientRect(); + variables["event-fromcatcher-posx"] = (event.clientX - catcherNodeRect.left).toString(); + variables["event-fromcatcher-posy"] = (event.clientY - catcherNodeRect.top).toString(); - //Add variables for event X and Y position relative to event catcher node - catcherNodeRect = self.domNode.getBoundingClientRect(); - variables["event-fromcatcher-posx"] = (event.clientX - catcherNodeRect.left).toString(); - variables["event-fromcatcher-posy"] = (event.clientY - catcherNodeRect.top).toString(); - - //Add variables for event X and Y position relative to the viewport - variables["event-fromviewport-posx"] = event.clientX.toString(); - variables["event-fromviewport-posy"] = event.clientY.toString(); + //Add variables for event X and Y position relative to the viewport + variables["event-fromviewport-posx"] = event.clientX.toString(); + variables["event-fromviewport-posy"] = event.clientY.toString(); + } } } else { return false;