[windows] html fullscreen support

This commit is contained in:
Lea Anthony
2023-10-23 20:49:21 +11:00
parent f8250fb0d8
commit ff08a5ca2b
8 changed files with 303 additions and 51 deletions
@@ -1,6 +1,7 @@
package application
import (
"github.com/wailsapp/go-webview2/pkg/edge"
"github.com/wailsapp/wails/v3/pkg/events"
)
@@ -1309,6 +1309,7 @@ func (w *windowsWebviewWindow) setupChromium() {
chromium.MessageCallback = w.processMessage
chromium.MessageWithAdditionalObjectsCallback = w.processMessageWithAdditionalObjects
chromium.WebResourceRequestedCallback = w.processRequest
chromium.ContainsFullScreenElementChangedCallback = w.fullscreenChanged
chromium.NavigationCompletedCallback = w.navigationCompleted
chromium.AcceleratorKeyCallback = func(vkey uint) bool {
if w.processKeyBinding(vkey) {
@@ -1460,6 +1461,18 @@ func (w *windowsWebviewWindow) setupChromium() {
}
func (w *windowsWebviewWindow) fullscreenChanged(sender *edge.ICoreWebView2, _ *edge.ICoreWebView2ContainsFullScreenElementChangedEventArgs) {
isFullscreen, err := sender.GetContainsFullScreenElement()
if err != nil {
globalApplication.fatal("Fatal error in callback fullscreenChanged: " + err.Error())
}
if isFullscreen {
w.fullscreen()
} else {
w.unfullscreen()
}
}
func convertEffect(effect DragEffect) w32.DWORD {
switch effect {
case DragEffectCopy: