Fix window close issues

Update docs
Make uri scheme registration thread safe
This commit is contained in:
Lea Anthony 2024-02-11 09:07:46 +11:00 committed by Travis McLane
commit be7c723c47
5 changed files with 55 additions and 28 deletions

View file

@ -23,6 +23,16 @@ Report any issues you find using [this guide](./getting-started/feedback.md).
- Test all the things on Linux!
#### Status
Linux examples:
- :material-check-bold: - Working
- :material-minus: - Partially working
- :material-close: - Not working
{{ read_csv("alpha5.csv") }}
## Upcoming milestones
## Alpha 6

View file

@ -1,16 +1,16 @@
" ",Mac,Windows,Linux
binding,:material-check-bold:,:material-check-bold:,:material-check-bold:
build,:material-check-bold:,:material-check-bold:,:material-check-bold:
clipboard,:material-check-bold:,:material-check-bold:,:material-check-bold:
context menus,:material-check-bold:,:material-check-bold:,:material-check-bold:
dialogs,:material-check-bold:,:material-check-bold:,:material-check-bold:
drag-n-drop,:material-check-bold:,:material-check-bold:,:material-check-bold:
events,:material-check-bold:,:material-check-bold:,:material-minus:
frameless,:material-check-bold:,:material-check-bold:,:material-check-bold:
keybindings,:material-check-bold:,:material-check-bold:,:material-minus:
plain,:material-check-bold:,:material-check-bold:,:material-check-bold:
screen,:material-check-bold:,:material-check-bold:,:material-check-bold:
systray,:material-check-bold:,:material-check-bold:,:material-check-bold:
video,:material-check-bold:,:material-check-bold:,:material-check-bold:
window,:material-check-bold:,:material-check-bold:,:material-minus:
wml,:material-check-bold:,:material-check-bold:,:material-check-bold:
" ",Linux,Notes
binding," "," "
build," "," "
clipboard," "," "
context menus," "," "
dialogs," "," "
drag-n-drop," "," "
events,:material-check-bold:," "
frameless," "," "
keybindings," "," "
plain," "," "
screen," "," "
systray," "," "
video," "," "
window," "," "
wml," "," "
1 Mac Linux Windows Notes
2 binding :material-check-bold: :material-check-bold: :material-check-bold:
3 build :material-check-bold: :material-check-bold: :material-check-bold:
4 clipboard :material-check-bold: :material-check-bold: :material-check-bold:
5 context menus :material-check-bold: :material-check-bold: :material-check-bold:
6 dialogs :material-check-bold: :material-check-bold: :material-check-bold:
7 drag-n-drop :material-check-bold: :material-check-bold: :material-check-bold:
8 events :material-check-bold: :material-minus: :material-check-bold: :material-check-bold:
9 frameless :material-check-bold: :material-check-bold: :material-check-bold:
10 keybindings :material-check-bold: :material-minus: :material-check-bold:
11 plain :material-check-bold: :material-check-bold: :material-check-bold:
12 screen :material-check-bold: :material-check-bold: :material-check-bold:
13 systray :material-check-bold: :material-check-bold: :material-check-bold:
14 video :material-check-bold: :material-check-bold: :material-check-bold:
15 window :material-check-bold: :material-minus: :material-check-bold:
16 wml :material-check-bold: :material-check-bold: :material-check-bold:

View file

@ -1,9 +1,5 @@
Scenario,Windows,Mac,Linux
Same package,: clipboardLock.RLock()
defer clipboardLock.RUnlock()
clipboardText := C.getClipboardText()
result := C.GoString(clipboardText)
return result, true:,:material-check-bold:,:material-check-bold:
Same package,:material-check-bold,:material-check-bold:,:material-check-bold:
Different package,:material-check-bold:,:material-check-bold:,:material-check-bold:
Different package with same name,"on hold","on hold","on hold"
Containing another struct from same package,:material-check-bold:,:material-check-bold:,:material-check-bold:

Can't render this file because it has a wrong number of fields in line 2.

View file

@ -0,0 +1,16 @@
" ",Mac,Windows,Linux
binding,:material-check-bold:,:material-check-bold:,:material-check-bold:
build,:material-check-bold:,:material-check-bold:,:material-check-bold:
clipboard,:material-check-bold:,:material-check-bold:,:material-check-bold:
context menus,:material-check-bold:,:material-check-bold:,:material-check-bold:
dialogs,:material-check-bold:,:material-check-bold:,:material-check-bold:
drag-n-drop,:material-check-bold:,:material-check-bold:,:material-check-bold:
events,:material-check-bold:,:material-check-bold:,:material-minus:
frameless,:material-check-bold:,:material-check-bold:,:material-check-bold:
keybindings,:material-check-bold:,:material-check-bold:,:material-minus:
plain,:material-check-bold:,:material-check-bold:,:material-check-bold:
screen,:material-check-bold:,:material-check-bold:,:material-check-bold:
systray,:material-check-bold:,:material-check-bold:,:material-check-bold:
video,:material-check-bold:,:material-check-bold:,:material-check-bold:
window,:material-check-bold:,:material-check-bold:,:material-minus:
wml,:material-check-bold:,:material-check-bold:,:material-check-bold:
1 Mac Windows Linux
2 binding :material-check-bold: :material-check-bold: :material-check-bold:
3 build :material-check-bold: :material-check-bold: :material-check-bold:
4 clipboard :material-check-bold: :material-check-bold: :material-check-bold:
5 context menus :material-check-bold: :material-check-bold: :material-check-bold:
6 dialogs :material-check-bold: :material-check-bold: :material-check-bold:
7 drag-n-drop :material-check-bold: :material-check-bold: :material-check-bold:
8 events :material-check-bold: :material-check-bold: :material-minus:
9 frameless :material-check-bold: :material-check-bold: :material-check-bold:
10 keybindings :material-check-bold: :material-check-bold: :material-minus:
11 plain :material-check-bold: :material-check-bold: :material-check-bold:
12 screen :material-check-bold: :material-check-bold: :material-check-bold:
13 systray :material-check-bold: :material-check-bold: :material-check-bold:
14 video :material-check-bold: :material-check-bold: :material-check-bold:
15 window :material-check-bold: :material-check-bold: :material-minus:
16 wml :material-check-bold: :material-check-bold: :material-check-bold:

View file

@ -7,6 +7,7 @@ import (
"github.com/wailsapp/wails/v3/internal/assetserver/webview"
"regexp"
"strings"
"sync"
"unsafe"
"github.com/wailsapp/wails/v3/pkg/events"
@ -192,6 +193,8 @@ var (
mainThreadId *C.GThread
)
var registerURIScheme sync.Once
func init() {
gtkSignalToMenuItem = map[uint]*MenuItem{}
@ -840,13 +843,15 @@ func windowNewWebview(parentId uint, gpuPolicy WebviewGpuPolicy) pointer {
C.g_object_set_data((*C.GObject)(unsafe.Pointer(webView)), c.String("windowid"), C.gpointer(winID))
C.g_object_set_data((*C.GObject)(unsafe.Pointer(manager)), c.String("windowid"), C.gpointer(winID))
context := C.webkit_web_view_get_context(C.webkit_web_view(webView))
C.webkit_web_context_register_uri_scheme(
context,
c.String("wails"),
C.WebKitURISchemeRequestCallback(C.onProcessRequest),
nil,
nil)
registerURIScheme.Do(func() {
context := C.webkit_web_view_get_context(C.webkit_web_view(webView))
C.webkit_web_context_register_uri_scheme(
context,
c.String("wails"),
C.WebKitURISchemeRequestCallback(C.onProcessRequest),
nil,
nil)
})
settings := C.webkit_web_view_get_settings((*C.WebKitWebView)(unsafe.Pointer(webView)))
C.webkit_settings_set_user_agent_with_application_details(settings, c.String("wails.io"), c.String(""))