From dc4daaebace2ca4c53d1a9d3ee47402c6b462354 Mon Sep 17 00:00:00 2001 From: Lea Anthony Date: Mon, 12 Jun 2023 14:59:04 +1000 Subject: [PATCH] [v3 windows] Support title bar button events --- v3/pkg/application/webview_window_windows.go | 11 ++++++++++- v3/pkg/events/events.go | 2 ++ v3/pkg/events/events.txt | 3 ++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/v3/pkg/application/webview_window_windows.go b/v3/pkg/application/webview_window_windows.go index 8aaf174e..3292c7fb 100644 --- a/v3/pkg/application/webview_window_windows.go +++ b/v3/pkg/application/webview_window_windows.go @@ -647,6 +647,7 @@ func (w *windowsWebviewWindow) WndProc(msg uint32, wparam, lparam uintptr) uintp case w32.WM_ACTIVATE: if wparam == w32.WA_ACTIVE || wparam == w32.WA_CLICKACTIVE { getNativeApplication().currentWindowID = w.parent.id + w.parent.emit(events.Common.WindowFocus) } case w32.WM_CLOSE: if w.parent.options.HideOnClose { @@ -662,6 +663,14 @@ func (w *windowsWebviewWindow) WndProc(msg uint32, wparam, lparam uintptr) uintp case w32.WM_MOVE, w32.WM_MOVING: _ = w.chromium.NotifyParentWindowPositionChanged() case w32.WM_SIZE: + switch wparam { + case w32.SIZE_MAXIMIZED: + w.parent.emit(events.Common.WindowMaximise) + case w32.SIZE_RESTORED: + w.parent.emit(events.Common.WindowRestore) + case w32.SIZE_MINIMIZED: + w.parent.emit(events.Common.WindowMinimise) + } if w.parent.options.Frameless && wparam == w32.SIZE_MINIMIZED { // If the window is frameless, and we are minimizing, then we need to suppress the Resize on the // WebView2. If we don't do this, restoring does not work as expected and first restores with some wrong @@ -715,7 +724,7 @@ func (w *windowsWebviewWindow) WndProc(msg uint32, wparam, lparam uintptr) uintp int(newWindowSize.Right-newWindowSize.Left), int(newWindowSize.Bottom-newWindowSize.Top), w32.SWP_NOZORDER|w32.SWP_NOACTIVATE) - + w.parent.emit(events.Common.WindowDPIChanged) } if w.parent.options.Windows.WindowMask != nil { diff --git a/v3/pkg/events/events.go b/v3/pkg/events/events.go index cc400ecc..db74af9f 100644 --- a/v3/pkg/events/events.go +++ b/v3/pkg/events/events.go @@ -26,6 +26,7 @@ type commonEvents struct { WindowFocus WindowEventType WindowShow WindowEventType WindowHide WindowEventType + WindowDPIChanged WindowEventType } func newCommonEvents() commonEvents { @@ -46,6 +47,7 @@ func newCommonEvents() commonEvents { WindowFocus: 1167, WindowShow: 1168, WindowHide: 1169, + WindowDPIChanged: 1170, } } diff --git a/v3/pkg/events/events.txt b/v3/pkg/events/events.txt index 72ec5d7e..167342ca 100644 --- a/v3/pkg/events/events.txt +++ b/v3/pkg/events/events.txt @@ -143,4 +143,5 @@ common:WindowZoomOut common:WindowZoomReset common:WindowFocus common:WindowShow -common:WindowHide \ No newline at end of file +common:WindowHide +common:WindowDPIChanged