From 631333c4866e75606b898148ea9b847cad30db0a Mon Sep 17 00:00:00 2001
From: Jonas Jenwald <jonas.jenwald@gmail.com>
Date: Tue, 8 Oct 2013 20:42:35 +0200
Subject: [PATCH] Fix hiding of the cursor in Presentation Mode in WebKit
 browsers

---
 web/presentation_mode.js | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/web/presentation_mode.js b/web/presentation_mode.js
index 2acafb968..2d02b3aea 100644
--- a/web/presentation_mode.js
+++ b/web/presentation_mode.js
@@ -25,6 +25,9 @@ var PresentationMode = {
   active: false,
   args: null,
   contextMenuOpen: false,
+//#if (GENERIC || CHROME)
+  prevCoords: { x: null, y: null },
+//#endif
 
   initialize: function presentationModeInitialize(options) {
     this.container = options.container;
@@ -145,6 +148,19 @@ var PresentationMode = {
   },
 
   mouseMove: function presentationModeMouseMove(evt) {
+//#if (GENERIC || CHROME)
+    // Workaround for a bug in WebKit browsers that causes the 'mousemove' event
+    // to be fired when the cursor is changed. For details, see:
+    // http://code.google.com/p/chromium/issues/detail?id=103041.
+
+    var currCoords = { x: evt.clientX, y: evt.clientY };
+    var prevCoords = PresentationMode.prevCoords;
+    PresentationMode.prevCoords = currCoords;
+
+    if (currCoords.x === prevCoords.x && currCoords.y === prevCoords.y) {
+      return;
+    }
+//#endif
     PresentationMode.showControls();
   },