From e1627dca610c5b6d7a7609a85d6aadf6328d8129 Mon Sep 17 00:00:00 2001
From: redphx <96280+redphx@users.noreply.github.com>
Date: Sat, 1 Jun 2024 17:11:53 +0700
Subject: [PATCH] Update better-xcloud.user.js
---
dist/better-xcloud.user.js | 119 +++++++++++++++++++++++++++----------
1 file changed, 88 insertions(+), 31 deletions(-)
diff --git a/dist/better-xcloud.user.js b/dist/better-xcloud.user.js
index db99afa..8c0ced2 100644
--- a/dist/better-xcloud.user.js
+++ b/dist/better-xcloud.user.js
@@ -2299,7 +2299,7 @@ class KeyHelper {
}
// src/assets/svg/command.svg
-var command_default = "\n";
+var command_default = "\n";
// src/assets/svg/controller.svg
var controller_default = "\n";
@@ -2313,6 +2313,9 @@ var cursor_text_default = "\n";
// src/assets/svg/refresh.svg
-var refresh_default = "\n";
+var refresh_default = "\n";
// src/assets/svg/remote-play.svg
var remote_play_default = "\n";
@@ -2341,43 +2344,43 @@ var stream_stats_default = "\n";
+var touch_control_enable_default = "\n";
// src/assets/svg/touch-control-disable.svg
-var touch_control_disable_default = "\n";
+var touch_control_disable_default = "\n";
// src/assets/svg/caret-left.svg
-var caret_left_default = "\n";
+var caret_left_default = "\n";
// src/assets/svg/caret-right.svg
-var caret_right_default = "\n";
+var caret_right_default = "\n";
// src/assets/svg/camera.svg
-var camera_default = "\n";
+var camera_default = "\n";
// src/assets/svg/microphone.svg
-var microphone_default = "\n";
+var microphone_default = "\n";
// src/assets/svg/microphone-slash.svg
-var microphone_slash_default = "\n";
+var microphone_slash_default = "\n";
// src/assets/svg/battery-full.svg
-var battery_full_default = "\n";
+var battery_full_default = "\n";
// src/assets/svg/clock.svg
-var clock_default = "\n";
+var clock_default = "\n";
// src/assets/svg/cloud.svg
-var cloud_default = "\n";
+var cloud_default = "\n";
// src/assets/svg/download.svg
-var download_default = "\n";
+var download_default = "\n";
// src/assets/svg/speaker-high.svg
-var speaker_high_default = "\n";
+var speaker_high_default = "\n";
// src/assets/svg/upload.svg
-var upload_default = "\n";
+var upload_default = "\n";
// src/utils/bx-icon.ts
var BxIcon = {
@@ -2386,6 +2389,7 @@ var BxIcon = {
COMMAND: command_default,
CONTROLLER: controller_default,
DISPLAY: display_default,
+ HOME: home_default,
MOUSE: mouse_default,
MOUSE_SETTINGS: mouse_settings_default,
NEW: new_default,
@@ -2699,13 +2703,14 @@ class StreamBadges {
});
window.addEventListener(BxEvent.XCLOUD_GUIDE_SHOWN, async (e) => {
const where = e.where;
- if (where === XcloudGuideWhere.HOME && STATES.isPlaying) {
- const $btnQuit = document.querySelector("#gamepass-dialog-root a[class*=QuitGameButton]");
- if (!$btnQuit) {
- return;
- }
- $btnQuit.insertAdjacentElement("beforebegin", await StreamBadges.getInstance().render());
+ if (where !== XcloudGuideWhere.HOME || !STATES.isPlaying) {
+ return;
}
+ const $btnQuit = document.querySelector("#gamepass-dialog-root a[class*=QuitGameButton]");
+ if (!$btnQuit) {
+ return;
+ }
+ $btnQuit.insertAdjacentElement("beforebegin", await StreamBadges.getInstance().render());
});
}
}
@@ -2747,6 +2752,17 @@ var cloneStreamHudButton = function($orgButton, label, svgIcon) {
$orgSvg.replaceWith($svg);
return $container;
};
+var cloneCloseButton = function($$btnOrg, icon, className, onChange) {
+ const $btn = $$btnOrg.cloneNode(true);
+ const $svg = createSvgIcon(icon);
+ $svg.setAttribute("class", $btn.firstElementChild.getAttribute("class") || "");
+ $svg.style.fill = "none";
+ $btn.classList.add(className);
+ $btn.removeChild($btn.firstElementChild);
+ $btn.appendChild($svg);
+ $btn.addEventListener("click", onChange);
+ return $btn;
+};
function injectStreamMenuButtons() {
const $screen = document.querySelector("#PageContent section[class*=PureScreens]");
if (!$screen) {
@@ -2797,20 +2813,17 @@ function injectStreamMenuButtons() {
if (!$btnCloseHud) {
return;
}
- $btnCloseHud && $btnCloseHud.addEventListener("click", (e) => {
+ $btnCloseHud.addEventListener("click", (e) => {
$settingsDialog.classList.add("bx-gone");
});
- const $btnRefresh = $btnCloseHud.cloneNode(true);
- const $svgRefresh = createSvgIcon(BxIcon.REFRESH);
- $svgRefresh.setAttribute("class", $btnRefresh.firstElementChild.getAttribute("class") || "");
- $svgRefresh.style.fill = "none";
- $btnRefresh.classList.add("bx-stream-refresh-button");
- $btnRefresh.removeChild($btnRefresh.firstElementChild);
- $btnRefresh.appendChild($svgRefresh);
- $btnRefresh.addEventListener("click", (e) => {
+ const $btnRefresh = cloneCloseButton($btnCloseHud, BxIcon.REFRESH, "bx-stream-refresh-button", () => {
confirm(t("confirm-reload-stream")) && window.location.reload();
});
+ const $btnHome = cloneCloseButton($btnCloseHud, BxIcon.HOME, "bx-stream-home-button", () => {
+ confirm(t("back-to-home-confirm")) && (window.location.href = window.location.href.substring(0, 31));
+ });
$btnCloseHud.insertAdjacentElement("afterend", $btnRefresh);
+ $btnRefresh.insertAdjacentElement("afterend", $btnHome);
const $menu = document.querySelector("div[class*=StreamMenu-module__menuContainer] > div[class*=Menu-module]");
$menu?.appendChild(await StreamBadges.getInstance().render());
hideSettingsFunc();
@@ -2896,6 +2909,36 @@ function showStreamSettings(tabId) {
$parent.addEventListener("click", onClick);
}
}
+function setupStreamUiEvents() {
+ window.addEventListener(BxEvent.XCLOUD_GUIDE_SHOWN, async (e) => {
+ const where = e.where;
+ if (where !== XcloudGuideWhere.HOME || !STATES.isPlaying) {
+ return;
+ }
+ const $btnQuit = document.querySelector("#gamepass-dialog-root a[class*=QuitGameButton]");
+ if (!$btnQuit) {
+ return;
+ }
+ const $btnReload = createButton({
+ label: t("reload-stream"),
+ style: ButtonStyle.FULL_WIDTH | ButtonStyle.FOCUSABLE,
+ onClick: (e2) => {
+ confirm(t("confirm-reload-stream")) && window.location.reload();
+ }
+ });
+ const $btnHome = createButton({
+ label: t("back-to-home"),
+ style: ButtonStyle.FULL_WIDTH | ButtonStyle.FOCUSABLE,
+ onClick: (e2) => {
+ confirm(t("back-to-home-confirm")) && (window.location.href = window.location.href.substring(0, 31));
+ }
+ });
+ $btnQuit.insertAdjacentElement("afterend", $btnReload);
+ $btnReload.insertAdjacentElement("afterend", $btnHome);
+ const $btnXcloudHome = document.querySelector("#gamepass-dialog-root div[class^=HomeButtonWithDivider]");
+ $btnXcloudHome && ($btnXcloudHome.style.display = "none");
+ });
+}
// src/modules/mkb/pointer-client.ts
var LOG_TAG = "PointerClient";
@@ -6619,6 +6662,15 @@ body[data-media-type=default] .bx-stream-refresh-button {
body[data-media-type=tv] .bx-stream-refresh-button {
top: calc(var(--gds-focus-borderSize) + 80px) !important;
}
+.bx-stream-home-button {
+ top: calc(env(safe-area-inset-top, 0px) + 10px + 50px * 2) !important;
+}
+body[data-media-type=default] .bx-stream-home-button {
+ left: calc(env(safe-area-inset-left, 0px) + 12px) !important;
+}
+body[data-media-type=tv] .bx-stream-home-button {
+ top: calc(var(--gds-focus-borderSize) + 80px * 2) !important;
+}
div[data-testid=media-container] {
display: flex;
}
@@ -6635,6 +6687,10 @@ div[data-testid=media-container].bx-taking-screenshot:before {
align-self: center;
background: #000;
}
+#gamepass-dialog-root div[class^=Guide-module__guide] .bx-button {
+ overflow: visible;
+ margin-bottom: 12px;
+}
@-moz-keyframes bx-anim-taking-screenshot {
0% {
border: 0px solid rgba(255,255,255,0.502);
@@ -6859,7 +6915,7 @@ div[class^=StreamMenu-module__container] .bx-badges {
}
#gamepass-dialog-root .bx-badges {
position: fixed;
- top: 140px;
+ top: 60px;
left: 460px;
max-width: 500px;
}
@@ -8944,6 +9000,7 @@ var main = function() {
Toast.setup();
getPref(PrefKey.GAME_BAR_POSITION) !== "off" && GameBar.getInstance();
BX_FLAGS.PreloadUi && setupStreamUi();
+ setupStreamUiEvents();
StreamBadges.setupEvents();
StreamStats.setupEvents();
MkbHandler.setupEvents();