From 3ffd2bc4b920728214ae688463fc2ff1bd6a281b Mon Sep 17 00:00:00 2001 From: Supergamer1337 Date: Wed, 29 Jul 2020 21:08:50 +0200 Subject: [PATCH 1/4] Made cursor hide on OSD hide. Cursor shows on OSD show. Co-authored-by: Esaias Tilly --- src/controllers/playback/video/index.js | 7 +++++++ src/scripts/mouseManager.js | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/src/controllers/playback/video/index.js b/src/controllers/playback/video/index.js index d2bddfc136..23453857f9 100644 --- a/src/controllers/playback/video/index.js +++ b/src/controllers/playback/video/index.js @@ -1,6 +1,7 @@ import playbackManager from 'playbackManager'; import dom from 'dom'; import inputManager from 'inputManager'; +import mouseManager from 'mouseManager'; import datetime from 'datetime'; import itemHelper from 'itemHelper'; import mediaInfo from 'mediaInfo'; @@ -421,6 +422,9 @@ import 'css!assets/css/videoosd'; elem.classList.remove('hide'); elem.classList.remove('videoOsdBottom-hidden'); + mouseManager.removeIdleClasses(); // Remove Idle Classes To Show Cursor + mouseManager.lastMouseInputTime = new Date().getTime(); // Reset Mouse Input Time + if (!layoutManager.mobile) { setTimeout(function () { focusManager.focus(elem.querySelector('.btnPause')); @@ -435,6 +439,9 @@ import 'css!assets/css/videoosd'; const elem = osdBottomElement; clearHideAnimationEventListeners(elem); elem.classList.add('videoOsdBottom-hidden'); + + mouseManager.addIdleClasses(); // Add Idle Classes To Hide Cursor + dom.addEventListener(elem, transitionEndEventName, onHideAnimationComplete, { once: true }); diff --git a/src/scripts/mouseManager.js b/src/scripts/mouseManager.js index 4fc174381a..cc4d5459b5 100644 --- a/src/scripts/mouseManager.js +++ b/src/scripts/mouseManager.js @@ -157,5 +157,10 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd events.on(layoutManager, 'modechange', initMouse); + // Make Both Idle Class Functions And Last Mouse Input Time Accessible + self.addIdleClasses = addIdleClasses; + self.removeIdleClasses = removeIdleClasses; + self.lastMouseInputTime = lastMouseInputTime; + return self; }); From d7526d955d67f26bedf74d40b51408e683686cce Mon Sep 17 00:00:00 2001 From: Supergamer1337 Date: Thu, 30 Jul 2020 10:51:53 +0200 Subject: [PATCH 2/4] Added show and hide cursor --- src/controllers/playback/video/index.js | 5 +---- src/scripts/mouseManager.js | 26 +++++++++++++++---------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/controllers/playback/video/index.js b/src/controllers/playback/video/index.js index 23453857f9..ca67cddbe7 100644 --- a/src/controllers/playback/video/index.js +++ b/src/controllers/playback/video/index.js @@ -422,9 +422,6 @@ import 'css!assets/css/videoosd'; elem.classList.remove('hide'); elem.classList.remove('videoOsdBottom-hidden'); - mouseManager.removeIdleClasses(); // Remove Idle Classes To Show Cursor - mouseManager.lastMouseInputTime = new Date().getTime(); // Reset Mouse Input Time - if (!layoutManager.mobile) { setTimeout(function () { focusManager.focus(elem.querySelector('.btnPause')); @@ -440,7 +437,7 @@ import 'css!assets/css/videoosd'; clearHideAnimationEventListeners(elem); elem.classList.add('videoOsdBottom-hidden'); - mouseManager.addIdleClasses(); // Add Idle Classes To Hide Cursor + mouseManager.hideCursor(); dom.addEventListener(elem, transitionEndEventName, onHideAnimationComplete, { once: true diff --git a/src/scripts/mouseManager.js b/src/scripts/mouseManager.js index cc4d5459b5..b3faedbb58 100644 --- a/src/scripts/mouseManager.js +++ b/src/scripts/mouseManager.js @@ -31,6 +31,18 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd } } + function showCursor() { + isMouseIdle = false; + removeIdleClasses(); + events.trigger(self, 'mouseactive'); + } + + function hideCursor() { + isMouseIdle = true; + addIdleClasses(); + events.trigger(self, 'mouseidle'); + } + var lastPointerMoveData; function onPointerMove(e) { var eventX = e.screenX; @@ -62,9 +74,7 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd notifyApp(); if (isMouseIdle) { - isMouseIdle = false; - removeIdleClasses(); - events.trigger(self, 'mouseactive'); + showCursor(); } } @@ -99,9 +109,7 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd function onMouseInterval() { if (!isMouseIdle && mouseIdleTime() >= 5000) { - isMouseIdle = true; - addIdleClasses(); - events.trigger(self, 'mouseidle'); + hideCursor(); } } @@ -157,10 +165,8 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd events.on(layoutManager, 'modechange', initMouse); - // Make Both Idle Class Functions And Last Mouse Input Time Accessible - self.addIdleClasses = addIdleClasses; - self.removeIdleClasses = removeIdleClasses; - self.lastMouseInputTime = lastMouseInputTime; + self.hideCursor = hideCursor; + self.showCursor = showCursor; return self; }); From f254a7157296db31516e9baf3245dbb080ba00c8 Mon Sep 17 00:00:00 2001 From: Felix Bjerhem Aronsson Date: Thu, 30 Jul 2020 13:42:07 +0200 Subject: [PATCH 3/4] Moved hide cursor according to review --- src/controllers/playback/video/index.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/controllers/playback/video/index.js b/src/controllers/playback/video/index.js index ca67cddbe7..e761c16a32 100644 --- a/src/controllers/playback/video/index.js +++ b/src/controllers/playback/video/index.js @@ -368,6 +368,7 @@ import 'css!assets/css/videoosd'; function hideOsd() { slideUpToHide(headerElement); hideMainOsdControls(); + mouseManager.hideCursor(); } function toggleOsd() { @@ -437,8 +438,6 @@ import 'css!assets/css/videoosd'; clearHideAnimationEventListeners(elem); elem.classList.add('videoOsdBottom-hidden'); - mouseManager.hideCursor(); - dom.addEventListener(elem, transitionEndEventName, onHideAnimationComplete, { once: true }); From 5e422e15c0432489860171daffc2e3ac04e9f3f4 Mon Sep 17 00:00:00 2001 From: Felix Bjerhem Aronsson Date: Thu, 30 Jul 2020 13:42:41 +0200 Subject: [PATCH 4/4] Misc suggestions from code review Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com> --- src/scripts/mouseManager.js | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/scripts/mouseManager.js b/src/scripts/mouseManager.js index b3faedbb58..d801d82393 100644 --- a/src/scripts/mouseManager.js +++ b/src/scripts/mouseManager.js @@ -32,15 +32,19 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd } function showCursor() { - isMouseIdle = false; - removeIdleClasses(); - events.trigger(self, 'mouseactive'); + if (isMouseIdle) { + isMouseIdle = false; + removeIdleClasses(); + events.trigger(self, 'mouseactive'); + } } function hideCursor() { - isMouseIdle = true; - addIdleClasses(); - events.trigger(self, 'mouseidle'); + if (!isMouseIdle) { + isMouseIdle = true; + addIdleClasses(); + events.trigger(self, 'mouseidle'); + } } var lastPointerMoveData; @@ -73,9 +77,7 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd lastMouseInputTime = new Date().getTime(); notifyApp(); - if (isMouseIdle) { - showCursor(); - } + showCursor(); } function onPointerEnter(e) {