Commit graph

770 commits

Author SHA1 Message Date
Byron
7b7f3cd754
[v3] Make filtered dialog examples code work for linux (#4287)
* Make examples code work

* Changelog
2025-06-19 06:47:34 +10:00
Atterpac
0b7d1f4f67
fix incorrect window destroy (#4323)
* fix incorrect window destroy

* remove duplicate common signals

* Better handling of "shouldclose"

* Better handling of "shouldclose"

* Fix ABI safety issues in exported function for macOS window closing

Address CodeRabbit feedback on ABI safety and data races:
- Change exported function signature to use C types (C.uint, C.bool) for ABI safety
- Convert unconditionallyClose field from bool to atomic uint32 for thread safety
- Update all read/write operations to use atomic operations across platforms

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

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

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-06-18 07:31:55 +10:00
Lea Anthony
01ed7affc9
Update semgrep runner (#4356)
* Update semgrep workflow

---------

Co-authored-by: joshhardy <joshhardy@users.noreply.github.com>
2025-06-16 22:11:32 +10:00
Lea Anthony
fbd39c24f4 fix: Properly declare iconIsInTrayBounds variable in Windows systray
Fixes Windows compilation error where iconIsInTrayBounds was being
assigned without declaration. Declares the variable explicitly
before assignment to resolve 'undefined: iconIsInTrayBounds' error.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-16 00:33:47 +10:00
Lea Anthony
5452135dcb fix: Resolve Windows compilation errors blocking CI builds
Fixes two Windows-specific compilation issues that were preventing
GitHub Actions builds from passing:

## Issues Fixed

### 1. chromium.PutIsVisible undefined error
- **Problem**: Method call `chromium.PutIsVisible(true)` not available in
  current go-webview2 package version
- **Solution**: Commented out the call with TODO note for future restoration
- **File**: pkg/application/webview_window_windows.go:1686-1690
- **Impact**: Temporarily disables efficiency mode prevention until method available

### 2. Variable redeclaration error
- **Problem**: `err` variable redeclared with `:=` in same function scope
- **Solution**: Changed second assignment from `:=` to `=` for proper reassignment
- **File**: pkg/application/systemtray_windows.go:65
- **Context**: iconIsInTrayBounds assignment in positionWindow function

## Additional Changes

- Added CLAUDE.md for development guidance
- Added API_MANAGERS.md documenting new manager-based API structure
- Implemented functional DMG package creation (internal/commands/dmg/)
- Restored DMG support in CLI tool with proper validation

## Verification
-  Commands package builds successfully
-  Main CLI builds successfully
-  Tests run without compilation errors
-  Example builds pass

Resolves GitHub Actions Windows build failures introduced in recent commits.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-16 00:21:08 +10:00
Lea Anthony
a8c8417d16
Fix for windows icon handle handle leak. 2025-06-15 20:59:20 +10:00
Lea Anthony
1bdeda8530
linux build error fixes 2025-06-14 21:26:41 +10:00
Lea Anthony
d03a63e1b7 fix: Implement robust cross-platform window visibility fallback for issue #2861
Addresses the issue where application windows fail to show on Windows 10 Pro
due to efficiency mode preventing WebView2 NavigationCompleted events.

## Changes Made

### Windows (webview_window_windows.go)
- **Decouple window container from WebView state**: Window now shows immediately
- **Add timeout fallback**: 3-second timeout to show WebView if navigation is delayed
- **Prevent efficiency mode**: Set WebView2 IsVisible=true per Microsoft recommendation
- **Enhanced state tracking**: Added showRequested, visibilityTimeout, windowShown fields
- **Robust navigation completion**: Improved handler to work with new visibility logic

### macOS (webview_window_darwin.go)
- **Documentation**: Added comment noting macOS already follows best practices
- **No functional changes**: macOS implementation already robust

### Linux (webview_window_linux.go, linux_cgo.go, linux_purego.go)
- **Add missing methods**: Implemented show()/hide() methods in main Linux file
- **CGO implementation**: Added windowShow()/windowHide() delegation methods
- **Purego implementation**: Added windowShow()/windowHide() methods for purego builds
- **Consistent behavior**: Matches CGO implementation with position saving

## Implementation Pattern

Adopts the following pattern:
1. **Separate concerns**: Window container vs WebView content readiness
2. **Immediate visibility**: Show window container immediately
3. **Progressive enhancement**: Show WebView content when ready
4. **Robust fallbacks**: Timeout and multiple strategies for edge cases

## Testing Considerations

- Windows 10 Pro efficiency mode scenarios
- WebView2 navigation delays or failures
- Cross-platform consistency
- Performance impact of timeout mechanisms

Fixes #2861

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-14 12:59:44 +10:00
Atterpac
9ebc82afbb windows custom protocol 2025-05-18 16:48:18 -04:00
Atterpac
f143bd6866 linux custom protocol + .desktop 2025-05-18 16:48:09 -04:00
Atterpac
47f264d010 custom protocol application_darwin 2025-05-18 16:35:06 -04:00
Atterpac
b7c6c82cf3 Add ApplicationLaunchedWithUrl event 2025-05-18 16:34:00 -04:00
Atterpac
6e93efcdc1 mac deeplink delegate 2025-05-18 16:33:15 -04:00
dingda.li
c922a7e685 fix: restore hidden menuitem at correct position 2025-04-27 12:00:13 +08:00
Lea Anthony
421b75ef21
Multiple fixes. Thanks @kron! 2025-04-19 10:27:25 +10:00
Lea Anthony
b2a0e2972a
Merge branch 'v3-alpha' into v3-alpha-fix-window-events 2025-04-18 16:30:54 +10:00
Lea Anthony
6344a8a553
Merge branch 'v3-alpha' into v3-alpha-bugfix/gin-support 2025-04-18 15:57:41 +10:00
Lea Anthony
81211d56d9
Merge branch 'v3-alpha' into v3-alpha-bugfix-auto_fill-auto_password_save 2025-04-18 15:45:53 +10:00
Lea Anthony
0b546a1856
Merge branch 'v3-alpha' into notifications_darwin 2025-04-12 12:56:26 +10:00
Lea Anthony
7977a81606
Merge branch 'v3-alpha' into patch-2 2025-04-12 12:31:08 +10:00
Gabriel Lima
f46352dbe1 Create dialogs_windows_test.go 2025-04-09 16:21:59 -03:00
Gabriel Lima
f6750c3a48 delete redundant method 2025-04-07 13:35:37 -03:00
Gabriel Lima
3f22e1fe0c
Normalize Windows paths by default
JS code ends up escaping Windows paths when data gets passed around from backend to the frontend, so those should be normalized beforehand.
2025-04-06 22:36:22 -03:00
Johannes Lübke
14d6623c13
fix: unhandled error in dialogs.go
Does lead to deadlocks otherwise
2025-03-20 14:46:24 +01:00
Zach Botterman
6d15f08db4
Merge branch 'v3-alpha' into notifications_darwin 2025-03-14 23:46:04 -07:00
Oussama Sethoum
0be2efc275 fix: general auto save and general password auto save always enabled 2025-03-12 20:48:05 +01:00
Oussama Sethoum
635ddf5c36 fix: fullscreen, unfullscreen, unminise and unmaximise window events weren't being emitted. 2025-03-11 13:00:22 +01:00
Lea Anthony
b72782c35d
Update docs + examples.
Serve runtime from assetserver if requested.
2025-03-11 08:50:03 +11:00
Lea Anthony
866fb36b67
Add fix for application menu. Add docs 2025-03-08 11:25:06 +11:00
Ian VanSchooten
b733b1d3c4
Fix hidden menuItem on windows
And bring menu_windows into alignment with popupmenu_windows
2025-03-08 11:25:06 +11:00
Ian VanSchooten
91c9c3f147
Fix comment 2025-03-08 11:25:05 +11:00
Ian VanSchooten
35cc7fd569
Avoid adding duplicate menuitems (windows)
Previously, when calling `.SetHidden(false)` on a menu item that was not hidden, a duplicate menu item was created.
2025-03-08 11:25:05 +11:00
Ian VanSchooten
5fb1a14c36
Fix registration of hidden menuItem [mac] 2025-03-08 11:25:05 +11:00
Lea Anthony
f87dce15ea
Merge branch 'v3-alpha' into fork/fbbdev/v3-alpha-feature/service-api
# Conflicts:
#	docs/src/content/docs/changelog.mdx
#	v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/pkg/services/kvstore/keyvaluestore.js
#	v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/pkg/services/log/loggerservice.js
#	v3/examples/services/assets/bindings/github.com/wailsapp/wails/v3/pkg/services/sqlite/service.js
2025-03-01 16:33:11 +11:00
Fabio Massaioli
da9a9603b9 Merge branch 'v3-alpha' into v3-alpha-feature/typescript-runtime
# Conflicts:
#	docs/src/content/docs/changelog.mdx
2025-02-27 11:21:48 +01:00
Lea Anthony
b2c43c034f
[windows]Better popup menu positioning 2025-02-27 21:01:14 +11:00
Zach Botterman
10ae1f6029 export config from app 2025-02-25 15:04:05 -08:00
Fabio Massaioli
5dbd49606b Merge branch 'v3-alpha' into v3-alpha-feature/typescript-runtime 2025-02-25 04:13:47 +01:00
Fabio Massaioli
87ceed05fa Fix logging bug in call message processor 2025-02-25 03:33:56 +01:00
Lea Anthony
a5e2e42a55
[darwin] Ensure menu updates occur on main thread 2025-02-23 15:46:03 +11:00
Fabio Massaioli
82ed0e6842 Merge branch 'v3-alpha' into v3-alpha-feature/service-api
# Conflicts:
#	docs/src/content/docs/changelog.mdx
2025-02-19 15:42:12 +01:00
Fabio Massaioli
e7c134de4e
[v3] Late service registration and error handling overhaul (#4066)
* Add service registration method

* Fix error handling and formatting in messageprocessor

* Add configurable error handling

* Improve error strings

* Fix service shutdown on macOS

* Add post shutdown hook

* Better fatal errors

* Add startup/shutdown sequence tests

* Improve debug messages

* Update JS runtime

* Update docs

* Update changelog

* Fix log message in clipboard message processor

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

* Remove panic in RegisterService

* Fix linux tests (hopefully)

* Fix error formatting everywhere

* Fix typo in windows webview

* Tidy example mods

* Set application name in tests

* Fix ubuntu test workflow

* Cleanup template test pipeline

* Fix dev build detection on Go 1.24

* Update template go.mod/sum to Go 1.24

* Remove redundant caching in template tests

* Final format string cleanup

* Fix wails3 tool references

* Fix legacy log calls

* Remove formatJS and simplify format strings

* Fix indirect import

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-02-19 09:27:41 +01:00
Falco Gerritsjans
0dc7b3c549
More control over menus (#4031)
* Add prepend and clear method to menus

* Document appending and clearing menus

* Add `Destroy()`
Add notes to documentation.

* Remove menu item from map when destroying

* Remove menu items from map when clearing

* Update v3/pkg/application/menu.go

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

* Minor updates

* Fix build error

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-02-16 12:08:08 +11:00
Lea Anthony
244f32268b
Fix Hidden Mac MenuItem.
Go 1.24
2025-02-16 11:10:19 +11:00
Ian VanSchooten
e75c10d567
[V3] Add docs for event.Sender (#4075)
* Add docs for event.Sender

* Update changelog
2025-02-15 07:17:47 +11:00
Fabio Massaioli
63f47bc9ed Standardise and enhance logger service 2025-02-13 03:11:21 +01:00
Lea Anthony
d427e9d750
Add systray.SetTooltip 2025-02-08 14:01:22 +11:00
Lea Anthony
2db902ef82
Add menu option for Linux 2025-02-03 20:33:59 +11:00
Lea Anthony
36a1b71f93
The application menu is now macOS only.
Fixed a `Parameter incorrect` error in Windows.
Updated Window example for mica/acrylic/tabbed windows.
2025-02-03 20:08:31 +11:00
Lea Anthony
0ecfcee3bf
Fix IconPosition in Windows/Linux. Update docs. 2025-02-03 19:24:40 +11:00