Commit graph

5,233 commits

Author SHA1 Message Date
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
github-actions[bot]
47af2d2d48 v3.0.0-alpha.24 2025-08-13 02:39:39 +00:00
Lea Anthony
fb664a7c48
[v3] Sanitise browser URL (#4500) v3.0.0-alpha.24
* Sanitise the browser urls!
2025-08-12 21:20:36 +10:00
Aldrich Asuncion
b7414a4303
[v3] Fix SetBackgroundColour on Windows (#4492)
* Fix SetBackgroundColour on Windows

Update Chromium window color on calls to SetBackgroundColour.

* update changelog

* v3.0.0-alpha.23

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-12 20:45:24 +10:00