From 56ac5a1105d7ff3d1d7135d562003db957ba174b Mon Sep 17 00:00:00 2001 From: gorhill Date: Wed, 27 May 2015 15:15:20 -0400 Subject: [PATCH] coalesce mouse move events --- src/js/scriptlets/element-picker.js | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/js/scriptlets/element-picker.js b/src/js/scriptlets/element-picker.js index bb77b0c0e..7c8c25d7e 100644 --- a/src/js/scriptlets/element-picker.js +++ b/src/js/scriptlets/element-picker.js @@ -735,10 +735,28 @@ var elementFromPoint = function(x, y) { /******************************************************************************/ -var onSvgHovered = function(ev) { - var elem = elementFromPoint(ev.clientX, ev.clientY); - highlightElements(elem ? [elem] : []); -}; +var onSvgHovered = (function() { + var timer = null; + var position = { x: 0, y: 0 }; + + var onTimer = function() { + timer = null; + var elem = elementFromPoint(position.x, position.y); + highlightElements(elem ? [elem] : []); + }; + + var onMove = function(ev) { + position.x = ev.clientX; + position.y = ev.clientY; + if ( timer !== null ) { + return; + } + + timer = vAPI.setTimeout(onTimer, 40); + }; + + return onMove; +})(); /******************************************************************************/