summaryrefslogtreecommitdiff
path: root/backend/utilities.py
diff options
context:
space:
mode:
authorAAGaming <aa@mail.catvibers.me>2023-01-15 21:22:50 -0500
committerAAGaming <aa@mail.catvibers.me>2023-01-15 21:22:54 -0500
commitd695b90baf8bb5e62988d39e137604a4aa7b4ff0 (patch)
tree702da5f0a19f45ee6a270bd3ba389a817625f07b /backend/utilities.py
parent5fdcc56409a0bc75171df25ca50b6e09ffe7bf3a (diff)
downloaddecky-loader-d695b90baf8bb5e62988d39e137604a4aa7b4ff0.tar.gz
decky-loader-d695b90baf8bb5e62988d39e137604a4aa7b4ff0.zip
fix React DevTools againv2.4.11-pre1
Diffstat (limited to 'backend/utilities.py')
-rw-r--r--backend/utilities.py18
1 files changed, 16 insertions, 2 deletions
diff --git a/backend/utilities.py b/backend/utilities.py
index 88e7d0bf..7b0a5c89 100644
--- a/backend/utilities.py
+++ b/backend/utilities.py
@@ -233,7 +233,7 @@ class Utilities:
self.rdt_proxy_server.close()
self.rdt_proxy_task.cancel()
- async def enable_rdt(self):
+ async def _enable_rdt(self):
# TODO un-hardcode port
try:
self.stop_rdt_proxy()
@@ -243,11 +243,22 @@ class Utilities:
self.logger.info("Connecting to React DevTools at " + ip)
async with ClientSession() as web:
res = await web.request("GET", "http://" + ip + ":8097", ssl=helpers.get_ssl_context())
+ script = """
+ if (!window.deckyHasConnectedRDT) {
+ window.deckyHasConnectedRDT = true;
+ // This fixes the overlay when hovering over an element in RDT
+ Object.defineProperty(window, '__REACT_DEVTOOLS_TARGET_WINDOW__', {
+ enumerable: true,
+ configurable: true,
+ get: function() {
+ return FocusNavController?.m_ActiveContext?.ActiveWindow || window;
+ }
+ });
+ """ + await res.text() + "\n}"
if res.status != 200:
self.logger.error("Failed to connect to React DevTools at " + ip)
return False
self.start_rdt_proxy(ip, 8097)
- script = "if(!window.deckyHasConnectedRDT){window.deckyHasConnectedRDT=true;\n" + await res.text() + "\n}"
self.logger.info("Connected to React DevTools, loading script")
tab = await get_gamepadui_tab()
# RDT needs to load before React itself to work.
@@ -259,6 +270,9 @@ class Utilities:
self.logger.error("Failed to connect to React DevTools")
self.logger.error(format_exc())
+ async def enable_rdt(self):
+ self.context.loop.create_task(self._enable_rdt())
+
async def disable_rdt(self):
self.logger.info("Disabling React DevTools")
tab = await get_gamepadui_tab()