diff options
| author | AAGaming <aa@mail.catvibers.me> | 2023-01-15 21:22:50 -0500 |
|---|---|---|
| committer | AAGaming <aa@mail.catvibers.me> | 2023-01-15 21:22:54 -0500 |
| commit | d695b90baf8bb5e62988d39e137604a4aa7b4ff0 (patch) | |
| tree | 702da5f0a19f45ee6a270bd3ba389a817625f07b /backend/utilities.py | |
| parent | 5fdcc56409a0bc75171df25ca50b6e09ffe7bf3a (diff) | |
| download | decky-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.py | 18 |
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() |
