diff options
| -rw-r--r-- | res/client.js | 40 | ||||
| -rw-r--r-- | src/client/Main.hx | 22 | ||||
| -rw-r--r-- | src/client/Player.hx | 10 |
3 files changed, 45 insertions, 27 deletions
diff --git a/res/client.js b/res/client.js index 24ec1c5..6d00cff 100644 --- a/res/client.js +++ b/res/client.js @@ -1568,7 +1568,6 @@ client_Main.prototype = { window.document.querySelector("#messagebuffer").textContent = ""; } ,addMessage: function(name,text,time) { - var _gthis = this; var msgBuf = window.document.querySelector("#messagebuffer"); var userDiv = window.document.createElement("div"); userDiv.className = "chat-msg-" + name; @@ -1617,16 +1616,8 @@ client_Main.prototype = { if(name == this.personal.name) { msgBuf.scrollTop = msgBuf.scrollHeight; } - if(window.document.hidden && this.onBlinkTab == null) { - this.onBlinkTab = new haxe_Timer(1000); - this.onBlinkTab.run = function() { - if(StringTools.startsWith(window.document.title,_gthis.pageTitle)) { - return window.document.title = "*Chat*"; - } else { - return window.document.title = _gthis.getPageTitle(); - } - }; - this.onBlinkTab.run(); + if(this.onBlinkTab == null) { + this.blinkTabWithTitle("*Chat*"); } } ,onChatImageLoaded: function(e) { @@ -1659,6 +1650,24 @@ client_Main.prototype = { this.send({ type : "Rewind", rewind : { time : Std.parseInt(text)}}); } } + ,blinkTabWithTitle: function(title) { + var _gthis = this; + if(!window.document.hidden) { + return; + } + if(this.onBlinkTab != null) { + this.onBlinkTab.stop(); + } + this.onBlinkTab = new haxe_Timer(1000); + this.onBlinkTab.run = function() { + if(StringTools.startsWith(window.document.title,_gthis.pageTitle)) { + return window.document.title = title; + } else { + return window.document.title = _gthis.getPageTitle(); + } + }; + this.onBlinkTab.run(); + } ,setLeaderButton: function(flag) { var leaderBtn = window.document.querySelector("#leader_btn"); if(flag) { @@ -1773,9 +1782,12 @@ client_Player.prototype = { this.setItemElementType(this.videoItemsEl.children[pos],this.items[pos].isTemp); } ,setPlayer: function(newPlayer) { - if(this.player != null && this.player != newPlayer) { - client_JsApi.fireVideoRemoveEvents(this.items[this.itemPos]); - this.player.removeVideo(); + if(this.player != newPlayer) { + if(this.player != null) { + client_JsApi.fireVideoRemoveEvents(this.items[this.itemPos]); + this.player.removeVideo(); + } + this.main.blinkTabWithTitle("*Video*"); } this.player = newPlayer; } diff --git a/src/client/Main.hx b/src/client/Main.hx index 62fffcc..9ecae82 100644 --- a/src/client/Main.hx +++ b/src/client/Main.hx @@ -701,15 +701,7 @@ class Main { if (name == personal.name) { msgBuf.scrollTop = msgBuf.scrollHeight; } - if (document.hidden && onBlinkTab == null) { - onBlinkTab = new Timer(1000); - onBlinkTab.run = () -> { - if (document.title.startsWith(pageTitle)) - document.title = "*Chat*"; - else document.title = getPageTitle(); - } - onBlinkTab.run(); - } + if (onBlinkTab == null) blinkTabWithTitle("*Chat*"); } function onChatImageLoaded(e:Event):Void { @@ -753,6 +745,18 @@ class Main { } } + public function blinkTabWithTitle(title:String):Void { + if (!document.hidden) return; + if (onBlinkTab != null) onBlinkTab.stop(); + onBlinkTab = new Timer(1000); + onBlinkTab.run = () -> { + if (document.title.startsWith(pageTitle)) + document.title = title; + else document.title = getPageTitle(); + } + onBlinkTab.run(); + } + function setLeaderButton(flag:Bool):Void { final leaderBtn = ge("#leader_btn"); if (flag) leaderBtn.classList.add("label-success"); diff --git a/src/client/Player.hx b/src/client/Player.hx index 5c283f7..b0b52a7 100644 --- a/src/client/Player.hx +++ b/src/client/Player.hx @@ -87,10 +87,12 @@ class Player { } function setPlayer(newPlayer:IPlayer):Void { - if (player != null && player != newPlayer) { - JsApi.fireVideoRemoveEvents(items[itemPos]); - player.removeVideo(); - // playerEl.textContent = ""; + if (player != newPlayer) { + if (player != null) { + JsApi.fireVideoRemoveEvents(items[itemPos]); + player.removeVideo(); + } + main.blinkTabWithTitle("*Video*"); } player = newPlayer; } |
