5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-03 22:20:06 +08:00

Update changelog.mdx

This commit is contained in:
Lea Anthony 2024-12-28 13:23:58 +11:00
parent 86f5049d29
commit 8b53aa39ff
No known key found for this signature in database
GPG Key ID: 33DAF7BB90A58405
2 changed files with 61 additions and 53 deletions

View File

@ -32,6 +32,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- New `-git` flag for `wails3 init` command by [@leaanthony](https://github.com/leaanthony)
- New `wails3 generate webview2bootstrapper` command by [@leaanthony](https://github.com/leaanthony)
- Added `init()` method in runtime to allow manual initialisation of the runtime by [@leaanthony](https://github.com/leaanthony)
- Added `WindowDidMoveDebounceMS` option to Window's WindowOptions by [@leaanthony](https://github.com/leaanthony)
### Fixed
@ -44,6 +45,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
-  Improved window destroying logic by [@leaanthony](https://github.com/leaanthony)
-  Fix window position logic when attached to system trays by [@leaanthony](https://github.com/leaanthony)
-  Support fullscreen for frameless windows by [@leaanthony](https://github.com/leaanthony)
- Fix event handling by [@leaanthony](https://github.com/leaanthony)
- Fixed window shutdown logic by [@leaanthony](https://github.com/leaanthony)
### Changed
@ -51,6 +54,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Moved and renamed Taskfiles to platform specific directories by [@leaanthony](https://github.com/leaanthony)
- Created a much better experience when `index.html` is missing by [@leaanthony](https://github.com/leaanthony)
- [Windows] Improved performance of minimise and restore by [@leaanthony](https://github.com/leaanthony). Based on original [PR](https://github.com/wailsapp/wails/pull/3955) by [562589540](https://github.com/562589540)
- Removed `ShouldClose` option (Register a hook for events.Common.WindowClosing instead) by [@leaanthony](https://github.com/leaanthony)
- [Windows] Reduced flicker when opening a window by [@leaanthony](https://github.com/leaanthony)
- Removed `Window.Destroy` as this was intended to be an internal function by [@leaanthony](https://github.com/leaanthony)
- Renamed `WindowClose` events to `WindowClosing` by [@leaanthony](https://github.com/leaanthony)
## v3.0.0-alpha.8.3 - 2024-12-07

View File

@ -413,7 +413,7 @@ func (w *WebviewWindow) Show() Window {
if globalApplication.impl == nil {
return w
}
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
InvokeSync(w.Run)
return w
}
@ -550,7 +550,7 @@ func (w *WebviewWindow) SetMaxSize(maxWidth, maxHeight int) Window {
// ExecJS executes the given javascript in the context of the window.
func (w *WebviewWindow) ExecJS(js string) {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return
}
if w.runtimeLoaded {
@ -564,7 +564,7 @@ func (w *WebviewWindow) ExecJS(js string) {
// Fullscreen sets the window to fullscreen mode. Min/Max size constraints are disabled.
func (w *WebviewWindow) Fullscreen() Window {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
w.options.StartState = WindowStateFullscreen
return w
}
@ -608,7 +608,7 @@ func (w *WebviewWindow) SetCloseButtonState(state ButtonState) Window {
// Flash flashes the window's taskbar button/icon.
// Useful to indicate that attention is required. Windows only.
func (w *WebviewWindow) Flash(enabled bool) {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return
}
InvokeSync(func() {
@ -618,7 +618,7 @@ func (w *WebviewWindow) Flash(enabled bool) {
// IsMinimised returns true if the window is minimised
func (w *WebviewWindow) IsMinimised() bool {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return false
}
return InvokeSyncWithResult(w.impl.isMinimised)
@ -626,7 +626,7 @@ func (w *WebviewWindow) IsMinimised() bool {
// IsVisible returns true if the window is visible
func (w *WebviewWindow) IsVisible() bool {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return false
}
return InvokeSyncWithResult(w.impl.isVisible)
@ -634,7 +634,7 @@ func (w *WebviewWindow) IsVisible() bool {
// IsMaximised returns true if the window is maximised
func (w *WebviewWindow) IsMaximised() bool {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return false
}
return InvokeSyncWithResult(w.impl.isMaximised)
@ -642,7 +642,7 @@ func (w *WebviewWindow) IsMaximised() bool {
// Size returns the size of the window
func (w *WebviewWindow) Size() (int, int) {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return 0, 0
}
var width, height int
@ -654,7 +654,7 @@ func (w *WebviewWindow) Size() (int, int) {
// IsFocused returns true if the window is currently focused
func (w *WebviewWindow) IsFocused() bool {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return false
}
return InvokeSyncWithResult(w.impl.isFocused)
@ -662,7 +662,7 @@ func (w *WebviewWindow) IsFocused() bool {
// IsFullscreen returns true if the window is fullscreen
func (w *WebviewWindow) IsFullscreen() bool {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return false
}
return InvokeSyncWithResult(w.impl.isFullscreen)
@ -716,7 +716,7 @@ func (w *WebviewWindow) HandleMessage(message string) {
}
func (w *WebviewWindow) startResize(border string) error {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return nil
}
return InvokeSyncWithResult(func() error {
@ -726,7 +726,7 @@ func (w *WebviewWindow) startResize(border string) error {
// Center centers the window on the screen
func (w *WebviewWindow) Center() {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
w.options.InitialPosition = WindowCentered
return
}
@ -797,7 +797,7 @@ func (w *WebviewWindow) HandleWindowEvent(id uint) {
// Width returns the width of the window
func (w *WebviewWindow) Width() int {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return 0
}
return InvokeSyncWithResult(w.impl.width)
@ -805,7 +805,7 @@ func (w *WebviewWindow) Width() int {
// Height returns the height of the window
func (w *WebviewWindow) Height() int {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return 0
}
return InvokeSyncWithResult(w.impl.height)
@ -813,7 +813,7 @@ func (w *WebviewWindow) Height() int {
// PhysicalBounds returns the physical bounds of the window
func (w *WebviewWindow) PhysicalBounds() Rect {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return Rect{}
}
var rect Rect
@ -825,7 +825,7 @@ func (w *WebviewWindow) PhysicalBounds() Rect {
// SetPhysicalBounds sets the physical bounds of the window
func (w *WebviewWindow) SetPhysicalBounds(physicalBounds Rect) {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return
}
InvokeSync(func() {
@ -835,7 +835,7 @@ func (w *WebviewWindow) SetPhysicalBounds(physicalBounds Rect) {
// Bounds returns the DIP bounds of the window
func (w *WebviewWindow) Bounds() Rect {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return Rect{}
}
var rect Rect
@ -847,7 +847,7 @@ func (w *WebviewWindow) Bounds() Rect {
// SetBounds sets the DIP bounds of the window
func (w *WebviewWindow) SetBounds(bounds Rect) {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return
}
InvokeSync(func() {
@ -857,7 +857,7 @@ func (w *WebviewWindow) SetBounds(bounds Rect) {
// Position returns the absolute position of the window
func (w *WebviewWindow) Position() (int, int) {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return 0, 0
}
var x, y int
@ -869,7 +869,7 @@ func (w *WebviewWindow) Position() (int, int) {
// SetPosition sets the absolute position of the window.
func (w *WebviewWindow) SetPosition(x int, y int) {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return
}
InvokeSync(func() {
@ -879,7 +879,7 @@ func (w *WebviewWindow) SetPosition(x int, y int) {
// RelativePosition returns the position of the window relative to the screen WorkArea on which it is
func (w *WebviewWindow) RelativePosition() (int, int) {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return 0, 0
}
var x, y int
@ -902,7 +902,7 @@ func (w *WebviewWindow) SetRelativePosition(x, y int) Window {
}
func (w *WebviewWindow) destroy() {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return
}
@ -916,7 +916,7 @@ func (w *WebviewWindow) destroy() {
// Reload reloads the page assets
func (w *WebviewWindow) Reload() {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return
}
InvokeSync(w.impl.reload)
@ -924,7 +924,7 @@ func (w *WebviewWindow) Reload() {
// ForceReload forces the window to reload the page assets
func (w *WebviewWindow) ForceReload() {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return
}
InvokeSync(w.impl.forceReload)
@ -932,7 +932,7 @@ func (w *WebviewWindow) ForceReload() {
// ToggleFullscreen toggles the window between fullscreen and normal
func (w *WebviewWindow) ToggleFullscreen() {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return
}
InvokeSync(func() {
@ -946,7 +946,7 @@ func (w *WebviewWindow) ToggleFullscreen() {
// ToggleMaximise toggles the window between maximised and normal
func (w *WebviewWindow) ToggleMaximise() {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return
}
InvokeSync(func() {
@ -959,7 +959,7 @@ func (w *WebviewWindow) ToggleMaximise() {
}
func (w *WebviewWindow) OpenDevTools() {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return
}
InvokeSync(w.impl.openDevTools)
@ -975,7 +975,7 @@ func (w *WebviewWindow) ZoomReset() Window {
// ZoomIn increases the zoom level of the webview content
func (w *WebviewWindow) ZoomIn() {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return
}
InvokeSync(w.impl.zoomIn)
@ -983,7 +983,7 @@ func (w *WebviewWindow) ZoomIn() {
// ZoomOut decreases the zoom level of the webview content
func (w *WebviewWindow) ZoomOut() {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return
}
InvokeSync(w.impl.zoomOut)
@ -991,7 +991,7 @@ func (w *WebviewWindow) ZoomOut() {
// Close closes the window
func (w *WebviewWindow) Close() {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return
}
InvokeSync(func() {
@ -1000,7 +1000,7 @@ func (w *WebviewWindow) Close() {
}
func (w *WebviewWindow) Zoom() {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return
}
InvokeSync(w.impl.zoom)
@ -1019,7 +1019,7 @@ func (w *WebviewWindow) SetHTML(html string) Window {
// Minimise minimises the window.
func (w *WebviewWindow) Minimise() Window {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
w.options.StartState = WindowStateMinimised
return w
}
@ -1031,7 +1031,7 @@ func (w *WebviewWindow) Minimise() Window {
// Maximise maximises the window. Min/Max size constraints are disabled.
func (w *WebviewWindow) Maximise() Window {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
w.options.StartState = WindowStateMaximised
return w
}
@ -1044,7 +1044,7 @@ func (w *WebviewWindow) Maximise() Window {
// UnMinimise un-minimises the window. Min/Max size constraints are re-enabled.
func (w *WebviewWindow) UnMinimise() {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return
}
if w.IsMinimised() {
@ -1070,7 +1070,7 @@ func (w *WebviewWindow) UnFullscreen() {
// Restore restores the window to its previous state if it was previously minimised, maximised or fullscreen.
func (w *WebviewWindow) Restore() {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return
}
InvokeSync(func() {
@ -1085,7 +1085,7 @@ func (w *WebviewWindow) Restore() {
}
func (w *WebviewWindow) DisableSizeConstraints() {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return
}
InvokeSync(func() {
@ -1099,7 +1099,7 @@ func (w *WebviewWindow) DisableSizeConstraints() {
}
func (w *WebviewWindow) EnableSizeConstraints() {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return
}
InvokeSync(func() {
@ -1114,7 +1114,7 @@ func (w *WebviewWindow) EnableSizeConstraints() {
// GetScreen returns the screen that the window is on
func (w *WebviewWindow) GetScreen() (*Screen, error) {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return nil, nil
}
return InvokeSyncWithResultAndError(w.impl.getScreen)
@ -1180,7 +1180,7 @@ func (w *WebviewWindow) OpenContextMenu(data *ContextMenuData) {
}
}
menu.setContextData(data)
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return
}
InvokeSync(func() {
@ -1197,7 +1197,7 @@ func (w *WebviewWindow) RegisterContextMenu(name string, menu *Menu) {
// NativeWindowHandle returns the platform native window handle for the window.
func (w *WebviewWindow) NativeWindowHandle() (uintptr, error) {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return 0, errors.New("native handle unavailable as window is not running")
}
return w.impl.nativeWindowHandle(), nil
@ -1215,21 +1215,21 @@ func (w *WebviewWindow) emit(eventType events.WindowEventType) {
}
func (w *WebviewWindow) startDrag() error {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return nil
}
return InvokeSyncWithError(w.impl.startDrag)
}
func (w *WebviewWindow) Print() error {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return nil
}
return InvokeSyncWithError(w.impl.print)
}
func (w *WebviewWindow) SetEnabled(enabled bool) {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return
}
InvokeSync(func() {
@ -1263,7 +1263,7 @@ func (w *WebviewWindow) processKeyBinding(acceleratorString string) bool {
}
func (w *WebviewWindow) HandleKeyEvent(acceleratorString string) {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return
}
InvokeSync(func() {
@ -1290,7 +1290,7 @@ func (w *WebviewWindow) addMenuBinding(a *accelerator, menuItem *MenuItem) {
}
func (w *WebviewWindow) IsIgnoreMouseEvents() bool {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return false
}
return InvokeSyncWithResult(w.impl.isIgnoreMouseEvents)
@ -1298,7 +1298,7 @@ func (w *WebviewWindow) IsIgnoreMouseEvents() bool {
func (w *WebviewWindow) SetIgnoreMouseEvents(ignore bool) Window {
w.options.IgnoreMouseEvents = ignore
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
return w
}
InvokeSync(func() {
@ -1308,43 +1308,43 @@ func (w *WebviewWindow) SetIgnoreMouseEvents(ignore bool) Window {
}
func (w *WebviewWindow) cut() {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
w.impl.cut()
}
}
func (w *WebviewWindow) copy() {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
w.impl.copy()
}
}
func (w *WebviewWindow) paste() {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
w.impl.paste()
}
}
func (w *WebviewWindow) selectAll() {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
w.impl.selectAll()
}
}
func (w *WebviewWindow) undo() {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
w.impl.undo()
}
}
func (w *WebviewWindow) delete() {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
w.impl.delete()
}
}
func (w *WebviewWindow) redo() {
if w.impl == nil && !w.isDestroyed() {
if w.impl == nil || w.isDestroyed() {
w.impl.redo()
}
}