aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRblSb <msrblsb@gmail.com>2022-11-24 22:56:30 +0300
committerRblSb <msrblsb@gmail.com>2022-11-24 22:56:30 +0300
commit3dcdba0f4b47641bdb8a47c14a8cff3f86cc1d07 (patch)
tree520171997e71af56d0547e20007a26d3e220e5cd
parentd3f6d4e6434527569d13f211a0eb074c5a11992e (diff)
Right click on leader btn for pause
Or long tap on touch devices
-rw-r--r--res/client.js29
-rw-r--r--res/css/des.css5
-rw-r--r--res/index.html2
-rw-r--r--src/client/Buttons.hx8
-rw-r--r--src/client/Main.hx18
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();
}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage