From aba23fc3e7ada52e8c88aaf7b0dd80cdadc9338c Mon Sep 17 00:00:00 2001 From: Igor Vaynberg Date: Sun, 17 Jun 2012 00:28:18 -0700 Subject: [PATCH] Revert "remove unused code" This reverts commit 93f5e7508f51b7c4912348fe0031d6ca56393a91. --- select2.js | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/select2.js b/select2.js index fe8352d6..e41995e9 100755 --- a/select2.js +++ b/select2.js @@ -154,7 +154,26 @@ }); } - /** + /** + * filters mouse events so an event is fired only if the mouse moved. + * + * filters out mouse events that occur when mouse is stationary but + * the elements under the pointer are scrolled. + */ + function installFilteredMouseMove(element) { + var context = $(element[0].document); + context.on("mousemove", function (e) { + context.data("select2-lastpos", {x: e.pageX, y: e.pageY}); + }); + element.bind("mousemove", function (e) { + var lastpos = context.data("select2-lastpos"); + if (lastpos === undefined || lastpos.x !== e.pageX || lastpos.y !== e.pageY) { + $(e.target).trigger("mousemove-filtered", e); + } + }); + } + + /** * Debounces a function. Returns a function that calls the original fn function only if no invocations have been made * within the last quietMillis milliseconds. * @@ -403,6 +422,7 @@ // initialize the container this.initContainer(); + //installFilteredMouseMove(this.results); this.dropdown.delegate(resultsSelector, "mouseover", this.bind(this.highlightUnderEvent)); installDebouncedScroll(80, this.results);