Skip to content

Commit 730403f

Browse files
authored
Merge pull request #353 from DrUlysses/main
onLoadEnd duplicate fix for #352
2 parents 6d22b5f + c0d7bf6 commit 730403f

File tree

2 files changed

+25
-20
lines changed

2 files changed

+25
-20
lines changed

webview/src/desktopMain/kotlin/com/multiplatform/webview/web/WebEngineExt.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ internal fun CefBrowser.addLoadListener(
129129
KLogger.d { "Load End ${browser?.url}" }
130130
state.loadingState = LoadingState.Finished
131131
navigator.canGoBack = canGoBack()
132-
navigator.canGoBack = canGoForward()
132+
navigator.canGoForward = canGoForward()
133133
state.lastLoadedUrl = getCurrentUrl()
134134
}
135135

webview/src/desktopMain/kotlin/com/multiplatform/webview/web/WebView.desktop.kt

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,6 @@
11
package com.multiplatform.webview.web
22

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.*
104
import androidx.compose.ui.Modifier
115
import androidx.compose.ui.awt.SwingPanel
126
import com.multiplatform.webview.jsbridge.WebViewJsBridge
@@ -15,6 +9,7 @@ import dev.datlag.kcef.KCEFBrowser
159
import dev.datlag.kcef.KCEFClient
1610
import org.cef.browser.CefRendering
1711
import org.cef.browser.CefRequestContext
12+
import java.util.concurrent.TimeUnit
1813

1914
/**
2015
* Desktop WebView implementation.
@@ -142,18 +137,28 @@ fun DesktopWebView(
142137
}
143138

144139
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+
}
157162
}
158163

159164
DisposableEffect(Unit) {

0 commit comments

Comments
 (0)