From 8ef8b2528b87a0d6b247ebf1e7525a5b653f4d62 Mon Sep 17 00:00:00 2001 From: stffabi Date: Wed, 24 Nov 2021 11:16:28 +0100 Subject: [PATCH 1/2] [v2] Bump winc to 0330cfc6d50c --- v2/go.mod | 2 +- v2/go.sum | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/v2/go.mod b/v2/go.mod index 7de242283..477e5a2cd 100644 --- a/v2/go.mod +++ b/v2/go.mod @@ -28,7 +28,7 @@ require ( github.com/leaanthony/slicer v1.5.0 github.com/leaanthony/typescriptify-golang-structs v0.1.7 github.com/leaanthony/webview2runtime v1.1.0 - github.com/leaanthony/winc v0.0.0-20210921073452-54963136bf18 + github.com/leaanthony/winc v0.0.0-20211124105230-0330cfc6d50c github.com/leaanthony/winicon v1.0.0 github.com/matryer/is v1.4.0 github.com/olekukonko/tablewriter v0.0.4 diff --git a/v2/go.sum b/v2/go.sum index 7ee93614d..168ecea06 100644 --- a/v2/go.sum +++ b/v2/go.sum @@ -134,6 +134,8 @@ github.com/leaanthony/webview2runtime v1.1.0 h1:N0pv55ift8XtqozIp4PNOtRCJ/Qdd/qz github.com/leaanthony/webview2runtime v1.1.0/go.mod h1:hH9GnWCve3DYzNaPOcPbhHQ7fodXR1QJNsnwixid4Tk= github.com/leaanthony/winc v0.0.0-20210921073452-54963136bf18 h1:5iOd93PZbpH4Iir8QkC4coFD+zEQEZSIRcjwjTFZkr0= github.com/leaanthony/winc v0.0.0-20210921073452-54963136bf18/go.mod h1:KEbMsKoznsebyGHwLk5LqkFOxL5uXSRdvpP4+avmAMs= +github.com/leaanthony/winc v0.0.0-20211124105230-0330cfc6d50c h1:TiVq07fzkq0QHJNC2WAb3efpM1R0gPcVgdxcvIu7K84= +github.com/leaanthony/winc v0.0.0-20211124105230-0330cfc6d50c/go.mod h1:KEbMsKoznsebyGHwLk5LqkFOxL5uXSRdvpP4+avmAMs= github.com/leaanthony/winicon v1.0.0 h1:ZNt5U5dY71oEoKZ97UVwJRT4e+5xo5o/ieKuHuk8NqQ= github.com/leaanthony/winicon v1.0.0/go.mod h1:en5xhijl92aphrJdmRPlh4NI1L6wq3gEm0LpXAPghjU= github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= From 1d87a81f63b1202e5d58683481c14d1f6c980769 Mon Sep 17 00:00:00 2001 From: stffabi Date: Wed, 24 Nov 2021 11:15:49 +0100 Subject: [PATCH 2/2] [v2] Use invoke to dispatch callbacks on windows --- .../frontend/desktop/windows/window.go | 30 ++----------------- 1 file changed, 2 insertions(+), 28 deletions(-) diff --git a/v2/internal/frontend/desktop/windows/window.go b/v2/internal/frontend/desktop/windows/window.go index d6c8d42e5..6e765fc9a 100644 --- a/v2/internal/frontend/desktop/windows/window.go +++ b/v2/internal/frontend/desktop/windows/window.go @@ -7,15 +7,12 @@ import ( "github.com/leaanthony/winc/w32" "github.com/wailsapp/wails/v2/pkg/menu" "github.com/wailsapp/wails/v2/pkg/options" - "sync" ) type Window struct { winc.Form frontendOptions *options.App applicationMenu *menu.Menu - m sync.Mutex - dispatchq []func() } func NewWindow(parent winc.Controller, appoptions *options.App) *Window { @@ -86,32 +83,9 @@ func NewWindow(parent winc.Controller, appoptions *options.App) *Window { } func (w *Window) Run() int { - var m w32.MSG - - for w32.GetMessage(&m, 0, 0, 0) != 0 { - if m.Message == w32.WM_APP { - // Credit: https://github.com/jchv/go-webview2 - w.m.Lock() - q := append([]func(){}, w.dispatchq...) - w.dispatchq = []func(){} - w.m.Unlock() - for _, v := range q { - v() - } - } - if !w.PreTranslateMessage(&m) { - w32.TranslateMessage(&m) - w32.DispatchMessage(&m) - } - } - - w32.GdiplusShutdown() - return int(m.WParam) + return winc.RunMainLoop() } func (w *Window) Dispatch(f func()) { - w.m.Lock() - w.dispatchq = append(w.dispatchq, f) - w.m.Unlock() - w32.PostMainThreadMessage(w32.WM_APP, 0, 0) + w.Invoke(f) }