Commit graph

5,236 commits

Author SHA1 Message Date
github-actions[bot]
c3b169f0d3 chore(v3): bump to v3.0.0-alpha.39 and update changelog [skip ci] v3.0.0-alpha.39 2025-11-12 02:38:00 +00:00
GitHub Actions
0ed4e05946 [skip ci] Publish @wailsio/runtime v3.0.0-alpha.73 2025-11-11 09:27:10 +00:00
Ian VanSchooten
bbd5d99667
[v3] Typed Events, revisited (#4633)
* Add strong event typings

* Make `EmitEvent` take one data argument only

* Add event registration logic

* Report event cancellation to the emitter

* Prevent registration of system events

* Add support for typed event data initialisation

* Binding generation for events

* Tests for event bindings

* Add vite plugin for typed events

* Fix dev command execution order

Co-authored-by: Fabio Massaioli <fabio.massaioli@gmail.com>

* Propagate module path to templates

* Update templates

Co-authored-by: Ian VanSchooten <ian.vanschooten@gmail.com>

* Go mod tidy for examples

* Switch to tsconfig.json for jetbrains IDE support

* Replace jsconfig in example

* Convert vite plugin to typescript

* Downgrade vite for now

The templates all use 5.x

* Remove root plugins dir from npm files

It's now '/dist/plugins'

* Include types for Create

But keep out of the docs

* Assign a type for cancelAll results

* Restore variadic argument in EmitEvent methods

* Support registered events with void data

* Test cases for void alias support

* Support strict mode

* Support custom event hooks

* Update docs

* Update changelog

* Testdata for typed events

* Test data for void alias support

* fix webview_window emit event

* Update changelog.mdx

* Update events

* Fix generator test path normalization for cross-platform compatibility

The generator tests were failing on CI because they compared absolute file paths
in warning messages. These paths differ between development machines and CI environments.

Changes:
- Normalize file paths in warnings to be relative to testcases/ directory
- Handle both Unix and Windows path separators
- Use Unix line endings consistently in test output
- Update all test expectation files to use normalized paths

This ensures tests pass consistently across different environments including
Windows, macOS, Linux, and CI systems.

* Remove stale comment

* Handle errors returned from validation

* Restore variadic argument to Emit (fix bad rebase)

* Event emitters return a boolean

* Don't use `EmitEvent` in docs

Supposedly it's for internal use, according to comment

* Fix event docs (from rebase)

* Ensure all templates specify @wailsio/runtime: "latest"

* Fix Windows test failure due to CRLF line endings

The test was failing on Windows because:
1. Hardcoded "\n" was being used instead of render.Newline when writing
   warning logs, causing CRLF vs LF mismatch
2. The render package import was missing
3. .got.log files weren't being skipped when building expected file list

Changes:
- Add render package import
- Use render.Newline instead of hardcoded "\n" for cross-platform compatibility
- Skip .got.log files in test file walker

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix template tests by using local runtime package

The template tests were failing because they were installing @wailsio/runtime@latest from npm, which doesn't have the new vite plugin yet. This change packs the local runtime and uses it in template tests instead.

Changes:
- Pack the runtime to a tarball in test_js job
- Upload the runtime package as an artifact
- Download and install the local runtime in template tests before building
- Update cleanup job to delete the runtime package artifact

* Apply suggestion from @leaanthony

* Fix: Install local runtime in frontend directory with correct path

The previous fix wasn't working because:
1. npm install was run in the project root, not in frontend/
2. wails3 build runs npm install again, which would reinstall from npm

Fixed by:
- Using npm pkg set to modify package.json to use file:// protocol
- This ensures subsequent npm install calls use the local tarball

* Fix Vue template syntax conflicts with Go template delimiters

The Vue templates were converted to .tmpl files to support dynamic module
paths, but Vue's template syntax {{ }} conflicts with Go's template syntax.

Fixed by escaping Vue template braces:
- {{ becomes {{"{{"}}
- }} becomes {{"}}"}}

This allows the Go template engine to output the literal {{ }} for Vue to process.

* Fix Vue template escaping and Windows shell compatibility

Two issues fixed:

1. Vue template escaping: Changed from {{"{{"}} to {{ "{{" }}
   - The previous syntax caused "missing value for command" error
   - Correct Go template syntax uses spaces between delimiters and strings

2. Windows PowerShell compatibility: Added 'shell: bash' to template generation step
   - The bash syntax (ls, head, $()) doesn't work in PowerShell
   - Git Bash is available on all GitHub runners including Windows

* Fix: test_templates depends on test_js for runtime package artifact

The runtime-package artifact is created in test_js job, not test_go.
Added test_js to the needs array so the artifact is available for download.

* Fix Windows path compatibility for runtime package artifact

Changed from absolute Unix path '/tmp/wails-runtime' to relative path
'wails-runtime-temp' which works cross-platform. Using realpath to
convert to absolute path for file:// URL in npm pkg set command.

* Fix realpath issue on Windows for runtime package

realpath on Windows Git Bash was producing malformed paths with duplicate
drive letters (D:\d\a\...). Replaced with portable solution using pwd
that works correctly across all platforms.

* Use pwd -W on Windows to get native Windows paths

Git Bash's pwd returns Unix-style paths (/d/a/wails/wails) which npm
then incorrectly resolves as D:/d/a/wails/wails. Using pwd -W returns
native Windows paths (D:\a\wails\wails) that npm can handle correctly.

This is the root cause of all the Windows path issues.

* Improve typechecking for Events.Emit()

* [docs] Clarify where `Events` is imported from in each example

* Add docs for runtime Events.Emit()

* Revert to v2-style Events.Emit (name, data)

* Update changelog

---------

Co-authored-by: Fabio Massaioli <fabio.massaioli@gmail.com>
Co-authored-by: Atterpac <Capretta.Michael@gmail.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-11 20:25:57 +11:00
github-actions[bot]
6e4e340ade chore(v3): bump to v3.0.0-alpha.38 and update changelog [skip ci] v3.0.0-alpha.38 2025-11-04 02:38:30 +00:00
Atterpac
a3a5d25d90
[v3-linux] fileexplorer fix opening dir on Linux (#4521)
* convert file to use lf line-endings

* fileexplorer fix opening dir on Linux

* include update in unreleased changelog

---------

Co-authored-by: Angus Dippenaar <angusdippenaar@gmail.com>
2025-11-04 08:14:27 +11:00
DeltaLaboratory
d58d4ba758
[v3 alpha] windows tray minor refactor (#4653)
* remove systray add retry loop

* correct setTooltip truncation

* track Windows tray icon ownership to avoid destroying shared handles

* fix incorrect warning call

* stop leaking Windows tray theme listener after destroy

* fix default app icon loading

* fix incorrect truncation

* harden system tray flow

* implement windows tray show/hide

* improved readability

* updateIcon call path

* improve error handling

* systray clock example

* added changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-11-04 07:44:58 +11:00
github-actions[bot]
8ac5984dfd chore(v3): bump to v3.0.0-alpha.37 and update changelog [skip ci] v3.0.0-alpha.37 2025-11-02 02:39:44 +00:00
Leo
11751beb8a
[v3] Fix Windows package task failure (#4668)
* Fix package task incompatibility

* Update UNRELEASED_CHANGELOG.md
2025-11-01 22:01:59 +11:00
github-actions[bot]
57d55643bc chore(v3): bump to v3.0.0-alpha.36 and update changelog [skip ci] v3.0.0-alpha.36 2025-10-15 02:36:28 +00:00
Lea Anthony
f091eee98b
[v3] Fix Windows build error with go-webview2 v1.0.22 (#4645)
* Fix Windows build error with go-webview2 v1.0.22

Fixes #4513

The go-webview2 library changed the MessageCallback signature in v1.0.22
from `func(string)` to `func(message string, sender *ICoreWebView2, args *ICoreWebView2WebMessageReceivedEventArgs)`.

This caused a build error for users:
```
cannot use w.processMessage (value of type func(message string)) as
func(message string, sender *ICoreWebView2, args *ICoreWebView2WebMessageReceivedEventArgs)
value in assignment
```

Changes:
- Updated processMessage signature to match go-webview2 v1.0.22
- Upgraded go-webview2 dependency from v1.0.21 to v1.0.22

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix Windows build error with go-webview2 v1.0.22

Fixes #4513

The go-webview2 library changed the MessageCallback signature in v1.0.22
from `func(string)` to `func(message string, sender *ICoreWebView2, args *ICoreWebView2WebMessageReceivedEventArgs)`.

This caused a build error for users:
```
cannot use w.processMessage (value of type func(message string)) as
func(message string, sender *ICoreWebView2, args *ICoreWebView2WebMessageReceivedEventArgs)
value in assignment
```

Changes:
- Updated processMessage signature to match go-webview2 v1.0.22
- Upgraded go-webview2 dependency from v1.0.21 to v1.0.22

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-10-14 21:40:53 +11:00
github-actions[bot]
8cd89fc5ef chore(v3): bump to v3.0.0-alpha.35 and update changelog [skip ci] v3.0.0-alpha.35 2025-10-14 02:34:13 +00:00
COD3HUNT3R
0f23972fed
Fix linux appimage task (#4644)
* Fixes https://github.com/wailsapp/wails/issues/4642

* Fix Linux appimage appicon variable in Linux taskfile
2025-10-14 08:52:55 +11:00
github-actions[bot]
ca594c5919 chore(v3): bump to v3.0.0-alpha.34 and update changelog [skip ci] v3.0.0-alpha.34 2025-10-06 02:34:59 +00:00
Matthew
f1037c8e22
[v3] Fix Linux Desktop Template & Windows NSIS Template Added (#4510)
* feat: added custom protocols to tmpl for windows wails tools

* fix:: .Info.Protocols, .Info doesn't exist and causes templater to error

* test: tests for build assets

* feat: updated changelog

* feat: insert macro for custom protocols

* Update changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-10-05 10:58:54 +00:00
github-actions[bot]
e2c95ba292 chore(v3): bump to v3.0.0-alpha.33 and update changelog [skip ci] v3.0.0-alpha.33 2025-10-04 02:28:46 +00:00
Jack Doan
84fcd705cc
[V3] Fix Linux systray updates (#4615)
* linux: Refresh the menu when it's set so dbus ever finds out

* changelog

* obey the rabbit
2025-10-03 13:39:41 +10:00
github-actions[bot]
f5fa1158dc chore(v3): bump to v3.0.0-alpha.32 and update changelog [skip ci] v3.0.0-alpha.32 2025-10-02 02:32:29 +00:00
rxliuli
6023f8ba5b
docs(v3): fixed notifications pkg path (#4617)
* docs(v3): fixed notifications pkg path

* chore(v3): update changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-10-02 12:29:51 +10:00
GitHub Actions
a72bc5039c [skip ci] Publish @wailsio/runtime v3.0.0-alpha.72 2025-10-02 02:03:00 +00:00
Lea Anthony
6665a3a4b3
fix: Move HandlePlatformFileDrop to window._wails internal API (#4616)
* fix: Move HandlePlatformFileDrop to window._wails internal API

Fixes #4489

## Problem
The npm package @wailsio/runtime doesn't work for drag-and-drop because
Go backend calls window.wails.Window.HandlePlatformFileDrop(), but the
npm package doesn't populate window.wails (by design for encapsulation).

## Root Cause
PR #3295 (March 2024) intentionally removed window.wails assignment from
the npm package to improve encapsulation. However, this broke platform
handlers that Go backend relies on.

## Solution
Move HandlePlatformFileDrop from public API (window.wails) to internal
API (window._wails), following the existing pattern:
- window._wails.invoke
- window._wails.environment
- window._wails.flags

## Changes
- Register handlePlatformFileDrop in window._wails namespace
- Update Go backend to call window._wails.handlePlatformFileDrop()
- Use camelCase naming for consistency with other internal API methods
- Rebuild bundled runtime with changes

## Benefits
 npm package works without window.wails pollution
 Maintains encapsulation of public API
 Platform handlers clearly separated as internal
 Follows existing internal API conventions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* chore: Add changelog entry for drag-and-drop fix

Updates UNRELEASED_CHANGELOG.md with the fix for #4489.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-10-02 12:01:53 +10:00
Lea Anthony
4d888a3df6
fix: prevent white window flash when Hidden option is true (#4612)
* fix: prevent white window flash when Hidden option is true

Fixes #4611

When creating a window with Hidden: true, the window was briefly
visible as a white window before disappearing. This was caused by
CreateWindowEx using WS_OVERLAPPEDWINDOW style which includes
WS_VISIBLE by default.

The fix excludes WS_VISIBLE from the window style when the Hidden
option is set to true, ensuring the window remains invisible until
explicitly shown via window.Show().

* Update Changelog
2025-10-02 11:55:38 +10:00
GitHub Actions
f70b9bf229 [skip ci] Publish @wailsio/runtime v3.0.0-alpha.71 2025-09-27 22:01:45 +00:00
Lea Anthony
3d1dc86079 Fix commit of npm package changes 2025-09-28 08:00:42 +10:00
Lea Anthony
cb76ef8c60 Bump npm version and fix pipeline 2025-09-28 07:50:55 +10:00
Lea Anthony
4a9d693e93 Regenerate runtime package 2025-09-28 07:37:57 +10:00
github-actions[bot]
cbf70499c3 chore(v3): bump to v3.0.0-alpha.31 and update changelog [skip ci] v3.0.0-alpha.31 2025-09-27 02:30:33 +00:00
Lea Anthony
751e4afe3f
[V3] Fix Window Affinity weirdness (#4600)
* Fix window affinity weirdness

* Update changelog
2025-09-27 12:25:00 +10:00
github-actions[bot]
966e3d5fbc chore(v3): bump to v3.0.0-alpha.30 and update changelog [skip ci] v3.0.0-alpha.30 2025-09-26 02:33:55 +00:00
samstanier
bb53fcbfac
[V3 alpha] Fix ultrawide monitor support on Wayland (fixes #4429) (#4561)
* Fixed Wayland related window maximum size issues on ultrawide monitors by adding a monitor-window search fallback.

* Fixed Wayland related window maximum size issues on ultrawide monitors by adding a monitor-window search fallback.

* Added note to UNRELEASED_CHANGELOG.md regarding Wayland ultrawide monitor fix of issue 4439.

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-09-25 06:01:16 +00:00
Lea Anthony
386034e1ef Update nightly release script 2025-09-25 14:42:51 +10:00
Lea Anthony
c6f6b0d054 Update nightly release script 2025-09-25 14:03:59 +10:00
Lea Anthony
91ee276115 Move to d2 diagrams in docs 2025-09-25 14:02:19 +10:00
Lea Anthony
bfd7a6279c chore(v3): bump to v3.0.0-alpha.29 and update changelog [skip ci] v3.0.0-alpha.29 2025-09-25 13:57:32 +10:00
Richard Bidin
335fa0bcc5
[V3 Alpha] Improves macOS Window menu support (#4588)
* feat: Binds window menu to app windows

* chore: disables tab feature & controls from menu by default

* docs: Adds title to example for it to show in the window menu item

* style: removes redundant SetBackgroundColor call

* chore: rolls back disabling tab controls for a future optional config

* docs: adds change description to unreleased notes

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-09-25 13:30:59 +10:00
Zach Botterman
ff6a333621
[v3] macOS Dock Service (#4451)
* dock service

* add docs and update comments

* remove unneeded doc imports

* update comment

* update comment

* update comment

* update changelog

* consolidate to dock service

* update examples + thread safety

* fix linux

* update docs

* thread safety

* Update v3/pkg/services/dock/dock_darwin.go

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-09-24 07:30:02 +00:00
Riad Afridi Shibly
da9fd9690d
fix: v3-alpha wails3 cli installation path (#4597)
* fix: v3-alpha wails3 cli installation path

* Update Changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-09-24 05:45:49 +00:00
Olivier Cornu
c179893911
fix: compilation issue when using react+nextJs application (#4585)
* fix: compilation issue when using react+next application

When building with next, I got an error during the "collecting page data" step.
Cannot find module '/home/node/application/node_modules/@wailsio/runtime/dist/utils' imported from /home/node/application/node_modules/@wailsio/runtime/dist/contextmenu.js] {
code: 'ERR_MODULE_NOT_FOUND',

* doc: added fix in the changelog

* fix: updated UNRELEASED_CHANGELOG.md

* doc: follow naming convention

* Remove v2 changelog entry

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-09-20 04:37:46 +00:00
Josh Ghiloni
afbbcc9521
Check for empty buffers instead of nil in responsewriter (#4576)
* Check for empty buffers instead of nil in responsewriter

Use Case:

I am using a service that implements `http.Handler` to send streaming
video to the frontend. Reliably, when sending fragmented MP4 data on
MacOS, the app would panic because the buffer being sent through the
response passed a not-nil check but would panic when accessing the first
byte of the buffer.

This PR addresses that by checking if the buffer is not empty instead of
nil, accounting for the case where len(buf) == 0 and cap(buf) > 0, or
maybe where buf[0] == '\0' (I'm not sure how the nil checks work for
slices)

* Update UNRELEASED_CHANGELOG

* Update v3/internal/assetserver/webview/responsewriter_darwin.go

nil and len check

---------

Co-authored-by: Atterpac <89053530+atterpac@users.noreply.github.com>
2025-09-16 16:03:07 -04:00
Atterpac
c567263f56
Bump version to 3.0.0-alpha.69 (#4569) 2025-09-09 14:41:20 +10:00
younggann
9d51280ec6
fix(macOS): Use visibleFrame for window centering to exclude menu bar (#4516) v3.0.0-alpha.28
* fix(macOS): Use visibleFrame for window centering to exclude menu bar

The windowCenter() function was using [screen frame] which includes
the menu bar and dock areas, causing windows to appear positioned
too high on the screen when centered.

This change uses [screen visibleFrame] instead, which excludes the
menu bar and dock areas, resulting in proper visual centering.

Fixes vertical centering issue on macOS in Wails v3 alpha.

* Update v3/UNRELEASED_CHANGELOG.md

* Update changelog entry format

---------

Co-authored-by: Atterpac <89053530+atterpac@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-09-07 09:35:08 +00:00
Lea Anthony
f4b9677bdc fix(v3-alpha): correct version.txt content to v3.0.0-alpha.27 2025-09-07 14:40:21 +10:00
Lea Anthony
04ebc69fc6 Resolve version.txt conflict to v3.0.0-alpha.27 2025-09-07 14:39:44 +10:00
Lea Anthony
1993ae3d8f chore(v3-alpha): set base version to v3.0.0-alpha.27 for next nightly (alpha.28) 2025-09-07 14:34:03 +10:00
Lea Anthony
f7326d8fef v3.0.0-alpha.27 2025-09-07 14:06:08 +10:00
Copilot
89ef7f7c55
Fix v3 release pipeline: correct git operation order to prevent version lag (#4546) v3.0.0-alpha.27
* Initial plan

* Fix v3 release pipeline: reorder git operations and add missing trigger workflow

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>

* Potential fix for code scanning alert no. 159: Workflow does not contain permissions

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-09-02 20:39:21 +10:00
Etesam
91f4906908
[v3] Liquid glass redefinition error (#4542)
* Fixed issue with redefinition of NSGlassEffectViewStyle

* Added entry to changelog

* Updated enum names

* Fix docs

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-08-30 11:57:21 +10:00
github-actions[bot]
043c4a0d94 v3.0.0-alpha.26 2025-08-24 02:40:05 +00:00
Lea Anthony
4bfc52f0b5
Add native Liquid Glass effect support for macOS (#4534) v3.0.0-alpha.26
* feat: Implement native Liquid Glass effect for macOS

feat: Add platform check for Liquid Glass demo

Show informative dialog on Windows/Linux explaining that the Liquid Glass
effect is a macOS-specific feature. The demo will exit gracefully on
non-macOS platforms.

docs: Add Liquid Glass feature to unreleased changelog

feat: Enhanced Liquid Glass effect with NSVisualEffectMaterial support

Major improvements to the Liquid Glass implementation for macOS:

- Added comprehensive NSVisualEffectMaterial support with 15+ material options
- Removed debug NSLog statements for cleaner production code
- Created multi-window demo showcasing 7 different glass effects:
  * Light Style - Clean light appearance
  * Dark Style - Dark themed glass
  * Vibrant Style - Enhanced transparency
  * Blue Tint - Custom RGBA tint color example
  * Sheet Material - NSVisualEffectMaterialSheet
  * HUD Window - Ultra-light HUD material
  * Content Background - With warm tint color
- Added Material field to MacLiquidGlass struct for fine-grained control
- Improved demo design with proper Title Case and cleaner layout
- Fixed logo sizing to prevent blur
- All windows fully draggable with InvisibleTitleBarHeight
- Added comprehensive README documentation

The implementation now provides developers with complete control over the
glass effect appearance, supporting both native NSGlassEffectView (macOS 15.0+)
and NSVisualEffectView fallback for older systems.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

feat: Implement native Liquid Glass effect for macOS

- Add support for NSGlassEffectView on macOS 15.0+
- Implement runtime detection of native glass APIs
- Add fallback to enhanced NSVisualEffectView for older systems
- Update liquid glass demo with frameless windows for better visibility
- Support all NSGlassEffectView properties (cornerRadius, tintColor, style)
- Properly handle webview layering with glass effect
- Remove binary from version control

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: Address CodeRabbit review feedback

- Comment out unimplemented ReduceMotion and StaticMode fields
- Remove overly broad draggable CSS properties
- Add corner radius validation
- Improve CSS with proper pointer-events and user-select
- Add clarifying comments about future features

* fix: Remove unimplemented ReduceMotion and StaticMode fields

Completely remove the commented-out performance optimization fields
as they are not implemented and have no timeline for implementation.

* fix: Update windowRemoveVisualEffects to also remove NSGlassEffectView instances

The cleanup function now properly removes both NSVisualEffectView and
NSGlassEffectView instances to prevent orphaned effect layers. Uses
NSClassFromString to avoid hard references to NSGlassEffectView which
is only available on macOS 15.0+.

* fix changelog

* Update v3/pkg/application/webview_window_darwin.m

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update v3/pkg/application/webview_window_darwin.m

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: Fix compilation errors in windowSetLiquidGlass

- Add missing NSGlassEffectViewStyle enum definition
- Fix undefined tintColor variable by creating NSColor before use
- Add autorelease to prevent memory leaks for allocated views

These issues were causing CI build failures while working locally due to different compiler settings.

* Update Taskfile.yaml

* feat: Implement groupID and groupSpacing for NSGlassEffectView

- Add runtime detection for groupIdentifier/groupName selectors
- Apply groupID via performSelector if supported
- Apply groupSpacing via KVC if supported
- Parameters are now functional when NSGlassEffectView supports them
- Maintains backward compatibility by checking selector availability

* test: Add liquid-glass example to test suite

- Add liquid-glass to EXAMPLEDIRS in Taskfile.yaml
- Ensures the example is tested during CI builds
- Validates compilation on different platforms

Addresses review comment about missing test coverage

* fix: Correct NSGlassEffectView availability to macOS 26.0

- Update @available checks from macOS 15.0 to 26.0 for NSGlassEffectView
- NSGlassEffectView is a private API introduced in macOS 26.0
- Update README to reflect correct version requirement
- Keep NSVisualEffectMaterial checks at 15.0 as those are different APIs

* fix: Prevent exceptions from unsafe WebView reparenting

- Remove early WebView addition to glassView.contentView
- Consolidate all WebView reparenting in one safe location
- Always call removeFromSuperview before adding to new parent
- Set frame and autoresizing mask after safe reparenting
- Prevents NSInternalInconsistencyException from multiple parents

* fix: Make WebView reparenting more robust and thread-safe

- Always call removeFromSuperview before adding to new parent
- Remove brittle superview check, always detach and reattach
- Check both webView and glassContentView are non-nil before operations
- Ensure all UI operations run on main thread with dispatch_sync
- Set frame and autoresizing mask after safe reparenting

* Tidy up

* Update changelog

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-24 07:16:19 +10:00
github-actions[bot]
8115b88a71 v3.0.0-alpha.25 2025-08-16 02:37:32 +00:00
Josh Ghiloni
15812b4f80
fix: make options in update build-assets override (#4505) v3.0.0-alpha.25
* fix: make options in update build-assets override

Before this fix, if `-config` was passed to `wails3 update
build-assets`, the values in the config file, even if they were empty,
would be used. Now, we only use the config file value if the value was
not passed in on the command line (or is the zero value or default value
for the option).

I'll be honest, I feel a little dirty about this implementation since
I had to copy string constants out of struct tags. Not very DRY of me.
That said, there was no obvious way to get the default value of a given
option. If I missed something, happy to have this corrected, but I've
tested it and it seems to be doing the things it should be doing.

* Update v3 changelog
2025-08-15 18:10:25 +10:00