diff options
| author | RblSb <msrblsb@gmail.com> | 2022-11-24 22:56:30 +0300 |
|---|---|---|
| committer | RblSb <msrblsb@gmail.com> | 2022-11-24 22:56:30 +0300 |
| commit | 3dcdba0f4b47641bdb8a47c14a8cff3f86cc1d07 (patch) | |
| tree | 520171997e71af56d0547e20007a26d3e220e5cd | |
| parent | d3f6d4e6434527569d13f211a0eb074c5a11992e (diff) | |
Right click on leader btn for pause
Or long tap on touch devices
| -rw-r--r-- | res/client.js | 29 | ||||
| -rw-r--r-- | res/css/des.css | 5 | ||||
| -rw-r--r-- | res/index.html | 2 | ||||
| -rw-r--r-- | src/client/Buttons.hx | 8 | ||||
| -rw-r--r-- | src/client/Main.hx | 18 |
5 files changed, 43 insertions, 19 deletions
diff --git a/res/client.js b/res/client.js index 90e026c..95ce777 100644 --- a/res/client.js +++ b/res/client.js @@ -827,14 +827,7 @@ client_Buttons.initHotkeys = function(main,player) { main.toggleLeader(); break; case 80: - if((main.personal.group & 4) == 0) { - client_JsApi.once("SetLeader",function(event) { - if(event.setLeader.clientName == main.personal.name) { - player.pause(); - } - }); - } - main.toggleLeader(); + main.toggleLeaderAndPause(); break; case 82: window.document.querySelector("#mediarefresh").onclick(); @@ -1277,7 +1270,12 @@ client_Main.prototype = { ,initListeners: function() { var _gthis = this; client_Buttons.init(this); - window.document.querySelector("#leader_btn").onclick = $bind(this,this.toggleLeader); + var leaderBtn = window.document.querySelector("#leader_btn"); + leaderBtn.onclick = $bind(this,this.toggleLeader); + leaderBtn.oncontextmenu = function(e) { + _gthis.toggleLeaderAndPause(); + e.preventDefault(); + }; window.document.querySelector("#voteskip").onclick = function(e) { if(client_Utils.isTouch() && !window.confirm(Lang.get("skipItemConfirm"))) { return; @@ -1494,7 +1492,7 @@ client_Main.prototype = { var data = JSON.parse(e.data); if(this.config != null && this.config.isVerbose) { var t = data.type; - haxe_Log.trace("Event: " + data.type,{ fileName : "src/client/Main.hx", lineNumber : 384, className : "client.Main", methodName : "onMessage", customParams : [Reflect.field(data,t.charAt(0).toLowerCase() + HxOverrides.substr(t,1,null))]}); + haxe_Log.trace("Event: " + data.type,{ fileName : "src/client/Main.hx", lineNumber : 390, className : "client.Main", methodName : "onMessage", customParams : [Reflect.field(data,t.charAt(0).toLowerCase() + HxOverrides.substr(t,1,null))]}); } client_JsApi.fireOnceEvent(data); switch(data.type) { @@ -2106,6 +2104,17 @@ client_Main.prototype = { this.setLeaderButton((this.personal.group & 4) == 0); this.send({ type : "SetLeader", setLeader : { clientName : (this.personal.group & 4) != 0 ? "" : this.personal.name}}); } + ,toggleLeaderAndPause: function() { + var _gthis = this; + if((this.personal.group & 4) == 0) { + client_JsApi.once("SetLeader",function(event) { + if(event.setLeader.clientName == _gthis.personal.name) { + _gthis.player.pause(); + } + }); + } + this.toggleLeader(); + } ,hasLeader: function() { return ClientTools.hasLeader(this.clients); } diff --git a/res/css/des.css b/res/css/des.css index a7c71e6..aa02177 100644 --- a/res/css/des.css +++ b/res/css/des.css @@ -241,6 +241,11 @@ button.danger-bg:focus { display: flex; } +.unselectable { + -webkit-user-select: none; + user-select: none; +} + /* Info */ .info { diff --git a/res/index.html b/res/index.html index 92b4f69..3892a41 100644 --- a/res/index.html +++ b/res/index.html @@ -140,7 +140,7 @@ <span id="usercount">${connection}...</span> </button> <span> - <button id="leader_btn" title="${leaderDesc}">${leader}</button> + <button id="leader_btn" class="unselectable" title="${leaderDesc}">${leader}</button> <!-- Settings button --> <button id="showoptions" class="collapsed" data-toggle="collapse" data-target="#optionsPanel" aria-expanded="false"> diff --git a/src/client/Buttons.hx b/src/client/Buttons.hx index aa7e1cc..b023ab7 100644 --- a/src/client/Buttons.hx +++ b/src/client/Buttons.hx @@ -311,13 +311,7 @@ class Buttons { case L: main.toggleLeader(); case P: - if (!main.isLeader()) { - JsApi.once(SetLeader, event -> { - final name = event.setLeader.clientName; - if (name == main.getName()) player.pause(); - }); - } - main.toggleLeader(); + main.toggleLeaderAndPause(); default: return; } diff --git a/src/client/Main.hx b/src/client/Main.hx index ec3d89c..ed63568 100644 --- a/src/client/Main.hx +++ b/src/client/Main.hx @@ -136,7 +136,13 @@ class Main { function initListeners():Void { Buttons.init(this); - ge("#leader_btn").onclick = toggleLeader; + final leaderBtn = ge("#leader_btn"); + leaderBtn.onclick = toggleLeader; + leaderBtn.oncontextmenu = (e:MouseEvent) -> { + toggleLeaderAndPause(); + e.preventDefault(); + } + final voteSkip = ge("#voteskip"); voteSkip.onclick = e -> { if (Utils.isTouch() && !window.confirm(Lang.get("skipItemConfirm"))) return; @@ -1011,6 +1017,16 @@ class Main { }); } + public function toggleLeaderAndPause():Void { + if (!isLeader()) { + JsApi.once(SetLeader, event -> { + final name = event.setLeader.clientName; + if (name == getName()) player.pause(); + }); + } + toggleLeader(); + } + public function hasLeader():Bool { return clients.hasLeader(); } |
