1
1
package com.multiplatform.webview.web
2
2
3
- import androidx.compose.runtime.Composable
4
- import androidx.compose.runtime.DisposableEffect
5
- import androidx.compose.runtime.LaunchedEffect
6
- import androidx.compose.runtime.getValue
7
- import androidx.compose.runtime.remember
8
- import androidx.compose.runtime.rememberCoroutineScope
9
- import androidx.compose.runtime.rememberUpdatedState
3
+ import androidx.compose.runtime.*
10
4
import androidx.compose.ui.Modifier
11
5
import androidx.compose.ui.awt.SwingPanel
12
6
import com.multiplatform.webview.jsbridge.WebViewJsBridge
@@ -15,6 +9,7 @@ import dev.datlag.kcef.KCEFBrowser
15
9
import dev.datlag.kcef.KCEFClient
16
10
import org.cef.browser.CefRendering
17
11
import org.cef.browser.CefRequestContext
12
+ import java.util.concurrent.TimeUnit
18
13
19
14
/* *
20
15
* Desktop WebView implementation.
@@ -142,18 +137,28 @@ fun DesktopWebView(
142
137
}
143
138
144
139
browser?.let {
145
- SwingPanel (
146
- factory = {
147
- onCreated(it)
148
- browser.apply {
149
- addDisplayHandler(state)
150
- addLoadListener(state, navigator)
151
- addRequestHandler(state, navigator)
152
- }
153
- browser.uiComponent
154
- },
155
- modifier = modifier,
156
- )
140
+ if (runCatching { browser.windowlessFrameRate.get(100L , TimeUnit .MILLISECONDS ) }.getOrNull() == null ) {
141
+ SwingPanel (
142
+ factory = {
143
+ onCreated(browser)
144
+ browser.apply {
145
+ addDisplayHandler(state)
146
+ addLoadListener(state, navigator)
147
+ addRequestHandler(state, navigator)
148
+ }
149
+ browser.uiComponent
150
+ },
151
+ modifier = modifier,
152
+ )
153
+ } else {
154
+ onCreated(browser)
155
+ browser.apply {
156
+ addDisplayHandler(state)
157
+ addLoadListener(state, navigator)
158
+ addRequestHandler(state, navigator)
159
+ }
160
+ browser.uiComponent.size = java.awt.Dimension (1280 , 720 )
161
+ }
157
162
}
158
163
159
164
DisposableEffect (Unit ) {
0 commit comments