Harden Wails application stubs
This commit is contained in:
parent
7efba121a9
commit
e67fa32827
5 changed files with 39 additions and 4 deletions
|
|
@ -0,0 +1,2 @@
|
|||
- @bug stubs/wails/pkg/application/application.go:73 — submenu items are not linked into the parent menu item, so submenu state is lost after AddSubmenu returns.
|
||||
- @bug stubs/wails/pkg/application/browser_window.go:113 — several browser-window state transitions still return fixed defaults, so the stub does not fully reflect fullscreen, resize, or geometry changes.
|
||||
|
|
@ -39,6 +39,7 @@ type BrowserWindow struct {
|
|||
id uint
|
||||
name string
|
||||
clientID string
|
||||
visible bool
|
||||
}
|
||||
|
||||
// NewBrowserWindow creates a browser window with the given ID and client ID.
|
||||
|
|
@ -49,6 +50,7 @@ func NewBrowserWindow(id uint, clientID string) *BrowserWindow {
|
|||
id: id,
|
||||
name: fmt.Sprintf("browser-%d", id),
|
||||
clientID: clientID,
|
||||
visible: true,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -83,7 +85,15 @@ func (browserWindow *BrowserWindow) handleDragAndDropMessage(filenames []string,
|
|||
func (browserWindow *BrowserWindow) HandleMessage(message string) {}
|
||||
func (browserWindow *BrowserWindow) HandleWindowEvent(identifier uint) {}
|
||||
func (browserWindow *BrowserWindow) Height() int { return 0 }
|
||||
func (browserWindow *BrowserWindow) Hide() Window { return browserWindow }
|
||||
func (browserWindow *BrowserWindow) Hide() Window {
|
||||
if browserWindow == nil {
|
||||
return nil
|
||||
}
|
||||
browserWindow.mu.Lock()
|
||||
browserWindow.visible = false
|
||||
browserWindow.mu.Unlock()
|
||||
return browserWindow
|
||||
}
|
||||
func (browserWindow *BrowserWindow) HideMenuBar() {}
|
||||
func (browserWindow *BrowserWindow) IsFocused() bool { return false }
|
||||
func (browserWindow *BrowserWindow) IsFullscreen() bool { return false }
|
||||
|
|
@ -138,7 +148,15 @@ func (browserWindow *BrowserWindow) SetURL(url string) Window { return b
|
|||
func (browserWindow *BrowserWindow) SetZoom(magnification float64) Window {
|
||||
return browserWindow
|
||||
}
|
||||
func (browserWindow *BrowserWindow) Show() Window { return browserWindow }
|
||||
func (browserWindow *BrowserWindow) Show() Window {
|
||||
if browserWindow == nil {
|
||||
return nil
|
||||
}
|
||||
browserWindow.mu.Lock()
|
||||
browserWindow.visible = true
|
||||
browserWindow.mu.Unlock()
|
||||
return browserWindow
|
||||
}
|
||||
func (browserWindow *BrowserWindow) ShowMenuBar() {}
|
||||
func (browserWindow *BrowserWindow) Size() (int, int) { return 0, 0 }
|
||||
func (browserWindow *BrowserWindow) OpenDevTools() {}
|
||||
|
|
@ -150,7 +168,14 @@ func (browserWindow *BrowserWindow) UnFullscreen() {}
|
|||
func (browserWindow *BrowserWindow) UnMaximise() {}
|
||||
func (browserWindow *BrowserWindow) UnMinimise() {}
|
||||
func (browserWindow *BrowserWindow) Width() int { return 0 }
|
||||
func (browserWindow *BrowserWindow) IsVisible() bool { return true }
|
||||
func (browserWindow *BrowserWindow) IsVisible() bool {
|
||||
if browserWindow == nil {
|
||||
return false
|
||||
}
|
||||
browserWindow.mu.RLock()
|
||||
defer browserWindow.mu.RUnlock()
|
||||
return browserWindow.visible
|
||||
}
|
||||
func (browserWindow *BrowserWindow) Bounds() Rect { return Rect{} }
|
||||
func (browserWindow *BrowserWindow) SetBounds(bounds Rect) {}
|
||||
func (browserWindow *BrowserWindow) Zoom() {}
|
||||
|
|
|
|||
|
|
@ -39,7 +39,9 @@ func TestBrowserWindow_NewBrowserWindow_Ugly(t *testing.T) {
|
|||
window := NewBrowserWindow(99, "client")
|
||||
|
||||
assert.Same(t, window, window.Show())
|
||||
assert.True(t, window.IsVisible())
|
||||
assert.Same(t, window, window.Hide())
|
||||
assert.False(t, window.IsVisible())
|
||||
assert.Same(t, window, window.Fullscreen())
|
||||
assert.Same(t, window, window.Maximise())
|
||||
assert.Same(t, window, window.Minimise())
|
||||
|
|
|
|||
|
|
@ -32,6 +32,12 @@ type ApplicationEvent struct {
|
|||
//
|
||||
// ctx := event.Context()
|
||||
func (e *ApplicationEvent) Context() *ApplicationEventContext {
|
||||
if e == nil {
|
||||
return nil
|
||||
}
|
||||
if e.ctx == nil {
|
||||
e.ctx = newApplicationEventContext()
|
||||
}
|
||||
return e.ctx
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ func TestEvents_ApplicationEvent_Good(t *testing.T) {
|
|||
func TestEvents_ApplicationEvent_Bad(t *testing.T) {
|
||||
event := &ApplicationEvent{}
|
||||
|
||||
assert.Nil(t, event.Context())
|
||||
require.NotNil(t, event.Context())
|
||||
assert.False(t, event.IsCancelled())
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue