|
|
@@ -26,17 +26,16 @@ if (import.meta.env.DEV && !(root instanceof HTMLElement)) {
|
|
|
)
|
|
|
}
|
|
|
|
|
|
-const isWindows = ostype() === "windows"
|
|
|
-if (isWindows) {
|
|
|
- const originalGetComputedStyle = window.getComputedStyle
|
|
|
- window.getComputedStyle = ((elt: Element, pseudoElt?: string | null) => {
|
|
|
- if (!(elt instanceof Element)) {
|
|
|
- // WebView2 can call into Floating UI with non-elements; fall back to a safe element.
|
|
|
- return originalGetComputedStyle(document.documentElement, pseudoElt ?? undefined)
|
|
|
- }
|
|
|
- return originalGetComputedStyle(elt, pseudoElt ?? undefined)
|
|
|
- }) as typeof window.getComputedStyle
|
|
|
-}
|
|
|
+// Floating UI can call getComputedStyle with non-elements (e.g., null refs, virtual elements).
|
|
|
+// This happens on all platforms (WebView2 on Windows, WKWebView on macOS), not just Windows.
|
|
|
+const originalGetComputedStyle = window.getComputedStyle
|
|
|
+window.getComputedStyle = ((elt: Element, pseudoElt?: string | null) => {
|
|
|
+ if (!(elt instanceof Element)) {
|
|
|
+ // Fall back to a safe element when a non-element is passed.
|
|
|
+ return originalGetComputedStyle(document.documentElement, pseudoElt ?? undefined)
|
|
|
+ }
|
|
|
+ return originalGetComputedStyle(elt, pseudoElt ?? undefined)
|
|
|
+}) as typeof window.getComputedStyle
|
|
|
|
|
|
let update: Update | null = null
|
|
|
|