From 62c9be74228549ff888b684a62f77fb056571470 Mon Sep 17 00:00:00 2001 From: RblSb Date: Wed, 1 Apr 2020 20:42:30 +0300 Subject: Dodge FF video controls bug --- res/client.js | 20 +++++++++++--------- src/client/Main.hx | 1 - src/client/players/Raw.hx | 15 ++++++++------- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/res/client.js b/res/client.js index d3043fd..0611166 100644 --- a/res/client.js +++ b/res/client.js @@ -1069,7 +1069,7 @@ client_Main.prototype = { var data = JSON.parse(e.data); var t = data.type; var t1 = t.charAt(0).toLowerCase() + HxOverrides.substr(t,1,null); - haxe_Log.trace("Event: " + data.type,{ fileName : "src/client/Main.hx", lineNumber : 300, className : "client.Main", methodName : "onMessage", customParams : [data[t1]]}); + haxe_Log.trace("Event: " + data.type,{ fileName : "src/client/Main.hx", lineNumber : 299, className : "client.Main", methodName : "onMessage", customParams : [data[t1]]}); switch(data.type) { case "AddVideo": this.player.addVideoItem(data.addVideo.item,data.addVideo.atEnd); @@ -2026,17 +2026,19 @@ client_players_Raw.prototype = { this.video.src = url; this.video.controls = true; var isTouch = 'ontouchstart' in window; + if(client_players_Raw.controlsHider != null) { + client_players_Raw.controlsHider.stop(); + } if(!isTouch) { - haxe_Timer.delay(function() { - _gthis.video.controls = false; - _gthis.video.onmouseover = function(e) { - _gthis.video.controls = true; - _gthis.video.onmouseover = null; - return _gthis.video.onmousemove = null; - }; - return _gthis.video.onmousemove = _gthis.video.onmouseover; + client_players_Raw.controlsHider = haxe_Timer.delay(function() { + return _gthis.video.controls = false; },3000); } + this.video.onmousemove = function(e) { + client_players_Raw.controlsHider.stop(); + _gthis.video.controls = true; + return _gthis.video.onmousemove = null; + }; this.video.oncanplaythrough = ($_=this.player,$bind($_,$_.onCanBePlayed)); this.video.onseeking = ($_=this.player,$bind($_,$_.onSetTime)); this.video.onplay = function(e1) { diff --git a/src/client/Main.hx b/src/client/Main.hx index 664495e..f65640a 100644 --- a/src/client/Main.hx +++ b/src/client/Main.hx @@ -8,7 +8,6 @@ import js.html.KeyboardEvent; import js.html.Event; import js.html.Element; import js.html.InputElement; -import js.html.VideoElement; import js.html.WebSocket; import js.Browser; import js.Browser.document; diff --git a/src/client/players/Raw.hx b/src/client/players/Raw.hx index 5637b1c..c7fa980 100644 --- a/src/client/players/Raw.hx +++ b/src/client/players/Raw.hx @@ -10,6 +10,7 @@ import Types.VideoItem; class Raw implements IPlayer { + static var controlsHider:Timer; final main:Main; final player:Player; final playerEl:Element = ge("#ytapiplayer"); @@ -50,15 +51,15 @@ class Raw implements IPlayer { video.src = url; video.controls = true; final isTouch = untyped __js__("'ontouchstart' in window"); - if (!isTouch) Timer.delay(() -> { + if (controlsHider != null) controlsHider.stop(); + if (!isTouch) controlsHider = Timer.delay(() -> { video.controls = false; - video.onmouseover = e -> { - video.controls = true; - video.onmouseover = null; - video.onmousemove = null; - } - video.onmousemove = video.onmouseover; }, 3000); + video.onmousemove = e -> { + controlsHider.stop(); + video.controls = true; + video.onmousemove = null; + } video.oncanplaythrough = player.onCanBePlayed; video.onseeking = player.onSetTime; video.onplay = e -> { -- cgit v1.2.3