From ac5d0e54f02961d33a90e18532d12a464083f512 Mon Sep 17 00:00:00 2001 From: Travis McLane Date: Thu, 27 Apr 2023 14:43:26 -0500 Subject: [PATCH] [purego] assethandler updates --- .../webview/request_linux_purego.go | 10 +++++++++ .../webview/responsewriter_linux_purego.go | 5 ++--- v3/pkg/application/application.go | 21 +++++++++++++++++++ 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/v2/pkg/assetserver/webview/request_linux_purego.go b/v2/pkg/assetserver/webview/request_linux_purego.go index 97036740..03e3a5ca 100644 --- a/v2/pkg/assetserver/webview/request_linux_purego.go +++ b/v2/pkg/assetserver/webview/request_linux_purego.go @@ -84,3 +84,13 @@ func (r *request) Response() ResponseWriter { r.rw = &responseWriter{req: r.req} return r.rw } + +func (r *request) Close() error { + var err error + if r.body != nil { + err = r.body.Close() + } + r.Response().Finish() + r.Release() + return err +} diff --git a/v2/pkg/assetserver/webview/responsewriter_linux_purego.go b/v2/pkg/assetserver/webview/responsewriter_linux_purego.go index f19cd4ca..8f5f1a57 100644 --- a/v2/pkg/assetserver/webview/responsewriter_linux_purego.go +++ b/v2/pkg/assetserver/webview/responsewriter_linux_purego.go @@ -121,19 +121,18 @@ func (rw *responseWriter) WriteHeader(code int) { } } -func (rw *responseWriter) Finish() error { +func (rw *responseWriter) Finish() { if !rw.wroteHeader { rw.WriteHeader(http.StatusNotImplemented) } if rw.finished { - return nil + return } rw.finished = true if rw.w != nil { rw.w.Close() } - return nil } func (rw *responseWriter) finishWithError(code int, err error) { diff --git a/v3/pkg/application/application.go b/v3/pkg/application/application.go index 9aea1c9a..fefd5304 100644 --- a/v3/pkg/application/application.go +++ b/v3/pkg/application/application.go @@ -390,6 +390,27 @@ func (a *App) Run() error { return nil } +// activate is called by the implementation to notify it is ready to run +func (a *App) activate() { + a.info("Starting window(s)") + // run windows + for _, window := range a.windows { + go window.run() + } + + a.info("Starting systray(s)") + // run system trays + for _, systray := range a.systemTrays { + go systray.Run() + } + + // set the application menu + a.impl.setApplicationMenu(a.ApplicationMenu) + + // set the application Icon + a.impl.setIcon(a.options.Icon) +} + func (a *App) handleApplicationEvent(event uint) { a.applicationEventListenersLock.RLock() listeners, ok := a.applicationEventListeners[event]