diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/client/Buttons.hx | 8 | ||||
| -rw-r--r-- | src/client/Main.hx | 18 |
2 files changed, 18 insertions, 8 deletions
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(); } |
