Compare commits

...

78 Commits

Author SHA1 Message Date
atterpac ec2ce3fcfb Fix appimage file sourcing (#3306)
Add findGTKFiles to source webkit files for appimage generation

s
2024-03-17 11:17:17 +11:00
Lea Anthony e9a9420e5c Refactor options.
Update deps
2024-03-17 09:42:27 +11:00
Travis McLane 209e097ba6 rename linux options file
`linux` suffix means it won't compile on non-Linux platforms.
Shorten the name to avoid:

../../pkg/application/options_webview_window.go:104:8: undefined: LinuxWindow
../../pkg/application/options_application.go:28:8: undefined: LinuxOptions
../../pkg/application/options_webview_window.go:104:8: undefined: LinuxWindow
2024-03-14 13:25:23 -05:00
Lea Anthony 8d234cc842 Update execjs signature 2024-03-14 08:57:10 +11:00
Lea Anthony e6805707d8 Fix mac compilation issues 2024-03-14 08:52:10 +11:00
Lea Anthony acd6f7af5b Merge remote-tracking branch 'origin/v3-alpha-linux' into v3-alpha 2024-03-14 08:39:19 +11:00
Josh Drake f38532bcf5 Correctly compute 'startURL' when using a frontend development server. (#3299)
* Fix computing 'startURL' when 'FRONTEND_DEVSERVER_URL' is present.

* Respect provided URL when computing 'startURL' and 'FRONTEND_DEVSERVER_URL' is present.

* Update changelog.

* Correctly produce absolute URI in 'GetStartURL' when input is provided.
2024-03-08 18:06:14 +11:00
Travis McLane 4b2189ba51 allow keypress propagation
- this allows the webkit to add values to the `input` when typed
FIXME: does this need to be configurable?
2024-03-07 09:03:47 -06:00
Travis McLane fb46cce963 simplify key handling logic 2024-03-07 09:03:32 -06:00
Travis McLane eedd5eb7d2 reuse the 'wv' variable 2024-03-07 09:02:39 -06:00
Travis McLane 716f4af808 [linux] add missing implementations 2024-03-06 17:10:41 -06:00
Travis McLane c21784037d wip: fixing rebase issue 2024-03-06 16:59:13 -06:00
Lea Anthony 0fde6c9922 Latest status 2024-03-06 16:59:13 -06:00
Travis McLane 6d90c1678c move install_signal_handlers to proper location 2024-03-06 16:59:13 -06:00
Lea Anthony a7fb568aff Fix signal handlers 2024-03-06 16:59:13 -06:00
Lea Anthony 065ca5f6d3 Move to latest webkit2 and remove older code.
Fix screen demo.
Update examples.
2024-03-06 16:59:13 -06:00
Lea Anthony ab9eec12eb Update status. Make wml demo non-drag 2024-03-06 16:59:13 -06:00
Lea Anthony 430736a4f2 Remove need for javascriptcore 2024-03-06 16:59:13 -06:00
Lea Anthony 161444107a Support linux systrays, of sorts... 2024-03-06 16:59:13 -06:00
Lea Anthony 12e2e2101a fix screens 2024-03-06 16:59:13 -06:00
Lea Anthony e39097a17e fix min/max 2024-03-06 16:59:13 -06:00
Lea Anthony be7c723c47 Fix window close issues
Update docs
Make uri scheme registration thread safe
2024-03-06 16:59:13 -06:00
Lea Anthony a60b198b03 Fix window close issues 2024-03-06 16:59:13 -06:00
Lea Anthony e06df85f02 WindowID now correctly processed by postMessage calls. 2024-03-06 16:59:13 -06:00
Lea Anthony 288a4757f8 WindowID now correctly passed with webview request. 2024-03-06 16:59:13 -06:00
Lea Anthony 29363fc07f ToggleDevTools -> OpenDevTools
More refactor CGO methods.
2024-03-06 16:59:13 -06:00
Lea Anthony 02a1b540ce [WIP] refactor CGO methods 2024-03-06 15:43:50 -06:00
Lea Anthony a048233f4c Added menu cloning.
Introduced the ability to clone a menu, along with its submenus, in Linux-based web applications to create a full deep copy. This fixes reusing the application menu for window menus.
2024-03-06 15:40:28 -06:00
Lea Anthony 758c4c2c8d Refactor Linux application handling in webview
This update introduces a LinuxOptions struct for Linux-specific application configurations and refines webview for Linux. The 'windows' map has been renamed to 'windowMap' to avoid confusion. Moreover, a method to unregister Windows has been added to ensure the Linux application automatically quits when the last window closes, unless explicitly disabled in the new LinuxOptions structure. Reset Window position after hiding. Some debug output has been removed.
2024-03-06 11:52:06 -06:00
Lea Anthony adae39efee Add webview GPU policy and update Linux options
The commit introduces a set of webview GPU policies to control hardware acceleration. These policies define when hardware acceleration is enabled on the webview. An option for this has been added to the LinuxWindow struct for Linux specific windows. Additional code modification was carried out to use this new GPU policy option when calling `windowNew` function. Finally, the sequence of the GPU Policies in the const declaration has been updated for better readability.
2024-03-06 11:49:11 -06:00
Lea Anthony 84e1bb4d9b Improve Linux application events and refactor app method receivers
This commit includes the addition of common events for the Linux platform. Refactored and standardized the method receivers for the application from 'm' to 'l'. Also, the application startup events in the window example have been updated according to the new naming scheme.
2024-03-06 11:48:26 -06:00
Lea Anthony 6b0daf3da9 Update windowSetupSignalHandlers & linux events 2024-03-06 11:44:55 -06:00
Lea Anthony b6c5d90c9d Window Flash for Linux
Set Min/Max window buttons
2024-03-06 11:43:16 -06:00
Lea Anthony a34ccbff33 ToggleDevTools -> OpenDevTools
More refactor CGO methods.
2024-03-06 11:43:12 -06:00
Lea Anthony 4cd4b46772 [WIP] refactor CGO methods 2024-03-06 11:42:19 -06:00
Lea Anthony 3d93c83920 Added menu cloning.
Introduced the ability to clone a menu, along with its submenus, in Linux-based web applications to create a full deep copy. This fixes reusing the application menu for window menus.
2024-03-06 11:42:19 -06:00
Lea Anthony 809863d61a Refactor Linux application handling in webview
This update introduces a LinuxOptions struct for Linux-specific application configurations and refines webview for Linux. The 'windows' map has been renamed to 'windowMap' to avoid confusion. Moreover, a method to unregister Windows has been added to ensure the Linux application automatically quits when the last window closes, unless explicitly disabled in the new LinuxOptions structure. Reset Window position after hiding. Some debug output has been removed.
2024-03-06 11:42:19 -06:00
Lea Anthony 4c7b643295 Add webview GPU policy and update Linux options
The commit introduces a set of webview GPU policies to control hardware acceleration. These policies define when hardware acceleration is enabled on the webview. An option for this has been added to the LinuxWindow struct for Linux specific windows. Additional code modification was carried out to use this new GPU policy option when calling `windowNew` function. Finally, the sequence of the GPU Policies in the const declaration has been updated for better readability.
2024-03-06 11:42:19 -06:00
Lea Anthony 05b16f1d63 Improve Linux application events and refactor app method receivers
This commit includes the addition of common events for the Linux platform. Refactored and standardized the method receivers for the application from 'm' to 'l'. Also, the application startup events in the window example have been updated according to the new naming scheme.
2024-03-06 11:42:19 -06:00
Lea Anthony bfa53dfd6c Update windowSetupSignalHandlers & linux events 2024-03-06 11:42:19 -06:00
stffabi 4467a1ffa2 [parser] Move context tests into a separate file 2024-03-04 12:38:21 +01:00
stffabi bfe9a9d015 [runtime] Add cancelation of bound method calls and context passing 2024-03-04 10:34:14 +01:00
Fabio Massaioli 7e687750b2 [v3] Add option for showing the toolbar in fullscreen mode on macOS (#3282)
* Add option for showing the toolbar in fullscreen mode on macOS

* Add an example demonstrating the ShowToolbarWhenFullscreen option

* Update docs

* Add changelog entry

* Run go mod tidy
2024-03-02 20:10:25 +11:00
Fabio Massaioli 0c3025d695 [v3] Fix ordering of if branches in WebviewWindow.Restore method (#3279)
* Add JS Window API example

* Fix ordering of if branches in Window.Restore method

* Add changelog entry
2024-03-02 16:04:02 +11:00
5aaee9 a9c22f0588 fix: wrong baseURL if open window twice (#3273) 2024-02-29 08:47:25 +11:00
Fabio Massaioli b8537d1c96 [v3] Restore ToggleMaximise method in Window interface (#3281)
* Add JS Window API example

* Add ToggleMaximise button to Window API example

* Restore ToggleMaximise method in Window interface

* Update docs and changelog
2024-02-29 08:42:57 +11:00
stffabi 12d12a33de [v3, assetServer] Update docs 2024-02-21 13:40:32 +01:00
stffabi 1956f95f9f [templates] Update templates to latest assetserver options 2024-02-16 08:04:16 +01:00
stffabi 723dd976b4 [v3, assetServer] Use middlewares for runtime, caps and falgs instead of having the implementation in the assetserver 2024-02-16 07:38:28 +01:00
stffabi 65251cdafa [v3, assetServer] Remove fs.FS from options and always use a http.Handler 2024-02-16 07:38:27 +01:00
Lea Anthony 471d626043 Add control to disable window buttons on Mac
Three new options have been introduced in the application options for MacOS to disable the minimize, maximize, and close buttons on the window. Corresponding functionality has been added in the webview window for darwin to handle these new options. These changes have been showcased in the window example main.go file.
2024-02-08 08:31:58 +11:00
Lea Anthony 0b82968c0f Add option to disable min/max windows buttons
This commit introduces the functionality to disable the minimise and maximise buttons on windows. These options have been added to the `application.WebviewWindowOptions` and integrated in the Windows application logic. Effectively, developers can now control the availability of these buttons in their windows applications.
2024-02-07 10:06:07 +11:00
ALMAS 0584a3929d Fix docs (#3228) 2024-02-03 07:01:57 +11:00
Lea Anthony 09815e6035 Update runtime.md 2024-02-02 17:14:09 +11:00
Lea Anthony 9a01650622 Update runtime.md 2024-02-02 17:10:33 +11:00
Lea Anthony fb5afbd394 Fix docs 2024-02-02 17:01:41 +11:00
Lea Anthony fc105cee2b Update docs 2024-02-01 21:39:32 +11:00
Lea Anthony 1ec3b4ecab v3.0.0-alpha.4 2024-02-01 21:09:03 +11:00
Lea Anthony 6e2bbe31ac [windows] fix frameless resize 2024-02-01 06:47:49 +11:00
Lea Anthony 5670c1e655 Update compiled runtime 2024-01-31 21:39:46 +11:00
Lea Anthony 7f5d836916 Fix feedback text 2024-01-31 17:55:21 +11:00
Lea Anthony cbaf859103 @wailsio/runtime@3.0.0-alpha.20
This fixes dragging by working around Vite's aggressive tree shaking
2024-01-30 21:01:32 +11:00
Lea Anthony 5115b294ee Fixed runtime. cp tool. 2024-01-29 21:29:16 +11:00
Lea Anthony c01bc4dbd7 Update runtime 2024-01-29 19:07:44 +11:00
Lea Anthony 7674f8eb2b Fixed dialogs on macOS. Update WML example to use compiled runtime. 2024-01-25 21:00:33 +11:00
Lea Anthony 773bdf8ea2 Fix small bugs in assetserver 2024-01-21 21:46:45 +11:00
Lea Anthony b249f0d0ce Bring linux up to date with dev changes 2024-01-21 21:24:30 +11:00
Lea Anthony 6522657893 Refactor menu functions and streamline devtools toggle across systems
This update adds implementation to several menu item functions, replacing their previous 'not implemented' state. This includes actions for close, reload, forcing reload, toggling of fullscreen, reset zoom, and others. The update also includes modifications for the handling of developer tools toggle under different build configurations. This refactoring is aimed to standardize devtools configuration across different operating systems.
2024-01-21 20:52:32 +11:00
Lea Anthony c82facd6ff Move startURL calculation to assetserver 2024-01-20 11:50:20 +11:00
Lea Anthony bcb390f611 @wailsio/runtime v3.0.0-alpha.16 2024-01-20 11:38:56 +11:00
Lea Anthony a805d6c2b1 @wailsio/runtime v3.0.0-alpha.15 2024-01-20 11:34:36 +11:00
Lea Anthony 3d08f92705 Update status. Fix dev task. 2024-01-20 08:45:44 +11:00
Lea Anthony 2436229145 Fix feedback page 2024-01-19 21:37:37 +11:00
Lea Anthony e5c14d24ae Initial implementation of dev mode.
Huge thanks to @atterpac!
2024-01-19 21:34:49 +11:00
Thomas Sénéchal 23c1a7d1d8 [v3/Windows] Fix failing Windows build due to undefined options (#3208)
* Fix failing Windows build due to undefined options

* Update changelog
2024-01-18 05:33:51 +11:00
Thomas Sénéchal 44bbce125b [V3/macos] Fix systray click handling when no attached window (#3207)
* Fix systray click handling

* Open Menu if no window is attached in defaultClickHandler()

* Remove systemTraySetMenu function

* Fix a crash in hide-window example

* Update changelog
2024-01-17 22:36:22 +11:00
Lea Anthony dff47263d5 Set default extension for save dialog file filter
The code update sets the default extension to the first pattern in the save dialog file filter when options.Filters is populated. This improvement applies to Windows platform interface function for 'Save File Dialog' and provides a more intuitive user experience.
2024-01-17 22:35:58 +11:00
Lea Anthony 861ddea1b2 Add option to prevent application shutdown
This update allows the application shutdown to be cancelled. It implements the shouldQuit function, which can prevent the application from quitting if it returns false. Additional checks have been added to ensure cleanup and quit processes are performed only if required. The darwin delegate and linux and windows applications were modified to include this new functionality.
2024-01-17 20:45:30 +11:00
233 changed files with 7539 additions and 4687 deletions
+27 -24
View File
@@ -298,6 +298,7 @@ import "github.com/wailsapp/wails/v3/pkg/application"
- [func \(w \*WebviewWindow\) Size\(\) \(int, int\)](#WebviewWindow.Size)
- [func \(w \*WebviewWindow\) ToggleDevTools\(\)](#WebviewWindow.ToggleDevTools)
- [func \(w \*WebviewWindow\) ToggleFullscreen\(\)](#WebviewWindow.ToggleFullscreen)
- [func \(w \*WebviewWindow\) ToggleMaximise\(\)](#WebviewWindow.ToggleMaximise)
- [func \(w \*WebviewWindow\) UnFullscreen\(\)](#WebviewWindow.UnFullscreen)
- [func \(w \*WebviewWindow\) UnMaximise\(\)](#WebviewWindow.UnMaximise)
- [func \(w \*WebviewWindow\) UnMinimise\(\)](#WebviewWindow.UnMinimise)
@@ -1205,31 +1206,21 @@ AssetOptions defines the configuration of the AssetServer.
```go
type AssetOptions struct {
// FS defines the static assets to be used. A GET request is first tried to be served from this FS. If the FS returns
// `os.ErrNotExist` for that file, the request handling will fallback to the Handler and tries to serve the GET
// request from it.
//
// If set to nil, all GET requests will be forwarded to Handler.
FS fs.FS
// Handler which serves all the content to the WebView.
Handler http.Handler
// Handler will be called for every GET request that can't be served from FS, due to `os.ErrNotExist`. Furthermore all
// non GET requests will always be served from this Handler.
//
// If not defined, the result is the following in cases where the Handler would have been called:
// GET request: `http.StatusNotFound`
// Other request: `http.StatusMethodNotAllowed`
Handler http.Handler
// Middleware is HTTP Middleware which allows to hook into the AssetServer request chain. It allows to skip the default
// request handler dynamically, e.g. implement specialized Routing etc.
// The Middleware is called to build a new `http.Handler` used by the AssetSever and it also receives the default
// handler used by the AssetServer as an argument.
//
// If not defined, the default AssetServer request chain is executed.
//
// Multiple Middlewares can be chained together with:
// ChainMiddleware(middleware ...Middleware) Middleware
Middleware Middleware
// Middleware is a HTTP Middleware which allows to hook into the AssetServer request chain. It allows to skip the default
// request handler dynamically, e.g. implement specialized Routing etc.
// The Middleware is called to build a new `http.Handler` used by the AssetSever and it also receives the default
// handler used by the AssetServer as an argument.
//
// This middleware injects itself before any of Wails internal middlewares.
//
// If not defined, the default AssetServer request chain is executed.
//
// Multiple Middlewares can be chained together with:
// ChainMiddleware(middleware ...Middleware) Middleware
Middleware Middleware
// External URL can be set to a development server URL so that all requests are forwarded to it. This is useful
// when using a development server like `vite` or `snowpack` which serves the assets on a different port.
@@ -1769,6 +1760,8 @@ type MacTitleBar struct {
UseToolbar bool
// HideToolbarSeparator will hide the toolbar separator
HideToolbarSeparator bool
// ShowToolbarWhenFullscreen will keep the toolbar visible when the window is in fullscreen mode
ShowToolbarWhenFullscreen bool
// ToolbarStyle is the style of toolbar to use
ToolbarStyle MacToolbarStyle
}
@@ -3725,6 +3718,16 @@ func (w *WebviewWindow) ToggleFullscreen()
ToggleFullscreen toggles the window between fullscreen and normal
<a name="WebviewWindow.ToggleMaximise"></a>
### func \(\*WebviewWindow\) [ToggleMaximise](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L720)
```go
func (w *WebviewWindow) ToggleMaximise()
```
ToggleMaximise toggles the window between maximised and normal
<a name="WebviewWindow.UnFullscreen"></a>
### func \(\*WebviewWindow\) [UnFullscreen](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L859)
+7
View File
@@ -21,10 +21,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- [darwin] add Event ApplicationShouldHandleReopen to be able to handle dock icon click by @5aaee9 in [#2991](https://github.com/wailsapp/wails/pull/2991)
- [darwin] add getPrimaryScreen/getScreens to impl by @tmclane in [#2618](https://github.com/wailsapp/wails/pull/2618)
- [darwin] add option for showing the toolbar in fullscreen mode on macOS by [@fbbdev](https://github.com/fbbdev) in [#3282](https://github.com/wailsapp/wails/pull/3282)
- [linux] add onKeyPress logic to convert linux keypress into an accelerator @[Atterpac](https://github.com/Atterpac) in[#3022](https://github.com/wailsapp/wails/pull/3022])
- [linux] add task `run:linux` by [@marcus-crane](https://github.com/marcus-crane) in [#3146](https://github.com/wailsapp/wails/pull/3146)
- export `SetIcon` method by @almas1992 in [PR](https://github.com/wailsapp/wails/pull/3147)
- Improve `OnShutdown` by @almas1992 in [PR](https://github.com/wailsapp/wails/pull/3189)
- restore `ToggleMaximise` method in `Window` interface by [@fbbdev](https://github.com/fbbdev) in [#3281](https://github.com/wailsapp/wails/pull/3281)
### Fixed
@@ -37,6 +39,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Fixed bug for linux in doctor in the event user doesn't have proper drivers installed. Added by [@pylotlight](https://github.com/pylotlight) in [PR](https://github.com/wailsapp/wails/pull/3032)
- Fix dpi scaling on start up (windows). Changed by @almas1992 in [PR](https://github.com/wailsapp/wails/pull/3145)
- Fix replace line in `go.mod` to use relative paths. Fixes Windows paths with spaces - @leaanthony.
- Fix MacOS systray click handling when no attached window by [thomas-senechal](https://github.com/thomas-senechal) in PR [#3207](https://github.com/wailsapp/wails/pull/3207)
- Fix failing Windows build due to unknown option by [thomas-senechal](https://github.com/thomas-senechal) in PR [#3208](https://github.com/wailsapp/wails/pull/3208)
- Fix wrong baseURL when open window twice by @5aaee9 in PR [#3273](https://github.com/wailsapp/wails/pull/3273)
- Fix ordering of if branches in `WebviewWindow.Restore` method by [@fbbdev](https://github.com/fbbdev) in [#3279](https://github.com/wailsapp/wails/pull/3279)
- Correctly compute `startURL` across multiple `GetStartURL` invocations when `FRONTEND_DEVSERVER_URL` is present. [#3299](https://github.com/wailsapp/wails/pull/3299)
### Changed
@@ -164,7 +164,7 @@ Example:
2: 4021313248,
},
Assets: application.AssetOptions{
FS: assets,
Handler: application.AssetFileServerFS(assets),
},
Mac: application.MacOptions{
ApplicationShouldTerminateAfterLastWindowClosed: true,
@@ -15,8 +15,8 @@ posts before creating new ones. Here are the different ways to provide feedback:
- Open a [PR](https://github.com/wailsapp/wails/pulls) with the title `[v3 alpha test] <description of bug>`.
- Please include a link to the PR in your post.
!!! warning
*Remember*, unexpected behaviour isn't necessarily a bug - it might just not do what you expect it to do. Use [Suggestions](#suggestions) for this.
!!! warning
*Remember*, unexpected behaviour isn't necessarily a bug - it might just not do what you expect it to do. Use [Suggestions](#suggestions) for this.
=== "Fixes"
+1 -1
View File
@@ -32,7 +32,7 @@ Please note that this is an alpha version of Wails v3. Features may be added, re
## Feedback and Contributions
Your feedback is vital to making Wails better. If you encounter any issues or have suggestions, please let us know through our [GitHub repository](https://github.com/wailsapp/wails). Contributions to the project are also welcome!
Your feedback is vital to making Wails better. If you encounter any issues or have suggestions, please use our [Feedback process](getting-started/feedback.md). Contributions to the project are also welcome!
Thank you for trying out Wails v3 Alpha!
+57
View File
@@ -0,0 +1,57 @@
# Runtime
The Wails runtime is the standard library for Wails applications. It provides a number of features that may
be used in your applications, including:
- Window management
- Dialogs
- Browser integration
- Clipboard
- Frameless dragging
- Tray icons
- Menu management
- System information
- Events
- Calling Go code
- Context Menus
- Screens
- WML (Wails Markup Language)
The runtime is required for integration between Go and the frontend. There are 2 ways to integrate the runtime:
- Using the `@wailsio/runtime` package
- Using a pre-built version of the runtime
## Using the `@wailsio/runtime` package
The `@wailsio/runtime` package is a JavaScript package that provides access to the Wails runtime. It is used in by all
the standard templates and is the recommended way to integrate the runtime into your application. By using the package,
you will only include the parts of the runtime that you use.
The package is available on npm and can be installed using:
```shell
npm install --save @wailsio/runtime
```
## Using a pre-built version of the runtime
Some projects will not use a Javascript bundler and may prefer to use a pre-built version of the runtime. This is
the default for the examples in `v3/examples`. The pre-built version of the runtime can be generated using the
following command:
```shell
wails3 generate runtime
```
This will generate a `runtime.js` (and `runtime.debug.js`) file in the current directory.
This file can be used by your application by adding it to your assets directory (normally `frontend/dist`) and then including it in your HTML:
```html
<html>
<head>
<script src="/runtime.js"></script>
</head>
<!--- ... -->
</>
```
+38 -20
View File
@@ -10,7 +10,36 @@ we are aiming to achieve. These are subject to change.
## Alpha milestones
### Current: Alpha 4
### Current: Alpha 5
#### Goals
The Alpha 5 cycle aims to bring Linux to parity (Alpha 4)with the other platforms.
#### How Can I Help?
!!! note
Report any issues you find using [this guide](./getting-started/feedback.md).
- Test all the things on Linux!
#### Status
Linux examples:
- :material-check-bold: - Working
- :material-minus: - Partially working
- :material-close: - Not working
{{ read_csv("alpha5.csv") }}
## Upcoming milestones
## Alpha 6
## Previous milestones
### Alpha 4 - Completed 2024-02-01
#### Goals
@@ -37,7 +66,7 @@ The `wails package` command should do the following:
Report any issues you find using [this guide](./getting-started/feedback.md).
- Install the CLI using the instructions [here](./getting-started/installation).
- Install the CLI using the instructions [here](./getting-started/installation.md).
- Run `wails3 doctor` and ensure that all dependencies are installed.
- Generate a new project using `wails3 init`.
@@ -68,6 +97,13 @@ Basically, try to break it and let us know if you find any issues! :smile:
{{ read_csv("alpha4-wails3-dev.csv") }}
- Windows is partially working:
- Frontend changes work as expected
- Go changes cause the application to be built twice
- Mac is partially working:
- Frontend changes work as expectedFrontend changes work as expected
- Go changes terminates the vite process
`wails3 package` command:
@@ -128,24 +164,6 @@ Examples:
- [ ] All examples working on Linux
## Upcoming milestones
### Alpha 4
#### Goals
### Alpha 5
#### Goals
- [ ] Keyboard shortcuts
- Window Level shortcuts
- Application Level shortcuts (applies to all windows)
- Ensure Keydown/Keyup events are sent to JS if not handled by Go
## Previous milestones
### Alpha 2
#### Goals
+2 -2
View File
@@ -25,7 +25,7 @@ func main() {
app := application.New(application.Options{
Name: "Multi Window Demo",
Assets: application.AssetOptions{
FS: assets,
Handler: application.AssetFileServerFS(assets),
},
})
@@ -243,7 +243,7 @@ func main() {
Name: "Events Demo",
Description: "A demo of the Events API",
Assets: application.AssetOptions{
FS: assets,
Handler: application.AssetFileServerFS(assets),
},
Mac: application.MacOptions{
ApplicationShouldTerminateAfterLastWindowClosed: true,
@@ -141,7 +141,7 @@ window.go.main = {
2: 4021313248,
},
Assets: application.AssetOptions{
FS: assets,
Handler: application.AssetFileServerFS(assets),
},
Mac: application.MacOptions{
ApplicationShouldTerminateAfterLastWindowClosed: true,
+2 -2
View File
@@ -24,7 +24,7 @@ func main() {
app := application.New(application.Options{
Name: "多窗口演示",
Assets: application.AssetOptions{
FS: assets,
Handler: application.AssetFileServerFS(assets),
},
})
@@ -233,7 +233,7 @@ func main() {
Name: "Events Demo",
Description: "Events API演示",
Assets: application.AssetOptions{
FS: assets,
Handler: application.AssetFileServerFS(assets),
},
Mac: application.MacOptions{
ApplicationShouldTerminateAfterLastWindowClosed: true,
+2
View File
@@ -150,6 +150,8 @@ nav:
# - Links: community/links.md
- Your First Application: getting-started/your-first-app.md
- Next Steps: getting-started/next-steps.md
- Learn More:
- Runtime: learn/runtime.md
- Feedback: getting-started/feedback.md
- Feedback: getting-started/feedback.md
- What's New in v3?: whats-new.md
+16 -16
View File
@@ -1,16 +1,16 @@
" ",Mac,Windows,Linux
binding,:material-check-bold:,:material-check-bold:,:material-check-bold:
build,:material-check-bold:,:material-check-bold:,:material-check-bold:
clipboard,:material-check-bold:,:material-check-bold:,:material-check-bold:
context menus,:material-check-bold:,:material-check-bold:,:material-check-bold:
dialogs,:material-check-bold:,:material-check-bold:,:material-check-bold:
drag-n-drop,:material-check-bold:,:material-check-bold:,:material-check-bold:
events,:material-check-bold:,:material-check-bold:,:material-minus:
frameless,:material-check-bold:,:material-check-bold:,:material-check-bold:
keybindings,:material-check-bold:,:material-check-bold:,:material-minus:
plain,:material-check-bold:,:material-check-bold:,:material-check-bold:
screen,:material-check-bold:,:material-check-bold:,:material-check-bold:
systray,:material-check-bold:,:material-check-bold:,:material-check-bold:
video,:material-check-bold:,:material-check-bold:,:material-check-bold:
window,:material-check-bold:,:material-check-bold:,:material-minus:
wml,:material-check-bold:,:material-check-bold:,:material-check-bold:
" ",Linux,Notes
binding," "," "
build," "," "
clipboard," "," "
context menus," "," "
dialogs," "," "
drag-n-drop," "," "
events,:material-check-bold:," "
frameless," "," "
keybindings," "," "
plain," "," "
screen," "," "
systray," "," "
video," "," "
window," "," "
wml," "," "
1 Mac Linux Windows Notes
2 binding :material-check-bold: :material-check-bold: :material-check-bold:
3 build :material-check-bold: :material-check-bold: :material-check-bold:
4 clipboard :material-check-bold: :material-check-bold: :material-check-bold:
5 context menus :material-check-bold: :material-check-bold: :material-check-bold:
6 dialogs :material-check-bold: :material-check-bold: :material-check-bold:
7 drag-n-drop :material-check-bold: :material-check-bold: :material-check-bold:
8 events :material-check-bold: :material-minus: :material-check-bold: :material-check-bold:
9 frameless :material-check-bold: :material-check-bold: :material-check-bold:
10 keybindings :material-check-bold: :material-minus: :material-check-bold:
11 plain :material-check-bold: :material-check-bold: :material-check-bold:
12 screen :material-check-bold: :material-check-bold: :material-check-bold:
13 systray :material-check-bold: :material-check-bold: :material-check-bold:
14 video :material-check-bold: :material-check-bold: :material-check-bold:
15 window :material-check-bold: :material-minus: :material-check-bold:
16 wml :material-check-bold: :material-check-bold: :material-check-bold:
@@ -1,5 +1,5 @@
Scenario,Windows,Mac,Linux
Same package,:material-check-bold:,:material-check-bold:,:material-check-bold:
Same package,:material-check-bold,:material-check-bold:,:material-check-bold:
Different package,:material-check-bold:,:material-check-bold:,:material-check-bold:
Different package with same name,"on hold","on hold","on hold"
Containing another struct from same package,:material-check-bold:,:material-check-bold:,:material-check-bold:
1 Scenario Windows Mac Linux
2 Same package :material-check-bold: :material-check-bold :material-check-bold: :material-check-bold:
3 Different package :material-check-bold: :material-check-bold: :material-check-bold:
4 Different package with same name on hold on hold on hold
5 Containing another struct from same package :material-check-bold: :material-check-bold: :material-check-bold:
+1 -1
View File
@@ -1,2 +1,2 @@
" ",Mac,Windows,Linux
`wails3 dev`," "," "," "
`wails3 dev`,:material-minus:,:material-minus:," "
1 Mac Windows Linux
2 `wails3 dev` :material-minus: :material-minus:
@@ -1,5 +1,4 @@
" ",Mac,Windows,Linux
Standard Executable," "," "," "
macOS Application Bundle," ",:material-cancel:,:material-cancel:
NSIS," "," "," "
macOS DMG," ",:material-cancel:,:material-cancel:
Standard Executable,:material-check-bold:,:material-check-bold:,:material-check-bold:
macOS Application Bundle,:material-check-bold:,:material-cancel:,:material-cancel:
NSIS,:material-cancel:,:material-check-bold:,:material-cancel:
1 Mac Windows Linux
2 Standard Executable :material-check-bold: :material-check-bold: :material-check-bold:
3 macOS Application Bundle :material-check-bold: :material-cancel: :material-cancel:
4 NSIS :material-cancel: :material-check-bold: :material-cancel:
macOS DMG :material-cancel: :material-cancel:
+16
View File
@@ -0,0 +1,16 @@
Example,Linux
binding," "
build,:material-check-bold:
clipboard,:material-check-bold:
context menus,:material-minus:
dialogs,:material-minus:
drag-n-drop," "
events,:material-check-bold:
frameless,:material-check-bold:
keybindings,:material-check-bold:
plain," "
screen,:material-check-bold:
systray,:material-check-bold:
video,:material-check-bold:
window,:material-check-bold:
wml,:material-check-bold:
1 Example Linux
2 binding
3 build :material-check-bold:
4 clipboard :material-check-bold:
5 context menus :material-minus:
6 dialogs :material-minus:
7 drag-n-drop
8 events :material-check-bold:
9 frameless :material-check-bold:
10 keybindings :material-check-bold:
11 plain
12 screen :material-check-bold:
13 systray :material-check-bold:
14 video :material-check-bold:
15 window :material-check-bold:
16 wml :material-check-bold:
+3 -1
View File
@@ -1,6 +1,8 @@
module github.com/wailsapp/wails/v2
go 1.20
go 1.21
toolchain go1.22.0
require (
github.com/Masterminds/semver v1.5.0
+3 -3
View File
@@ -4,10 +4,10 @@ package linux
type WebviewGpuPolicy int
const (
// WebviewGpuPolicyAlways Hardware acceleration is always enabled.
WebviewGpuPolicyAlways WebviewGpuPolicy = iota
// WebviewGpuPolicyOnDemand Hardware acceleration is enabled/disabled as request by web contents.
WebviewGpuPolicyOnDemand
WebviewGpuPolicyOnDemand WebviewGpuPolicy = iota
// WebviewGpuPolicyAlways Hardware acceleration is always enabled.
WebviewGpuPolicyAlways
// WebviewGpuPolicyNever Hardware acceleration is always disabled.
WebviewGpuPolicyNever
)
+4 -2
View File
@@ -25,7 +25,7 @@ func init() {
}
func main() {
app := clir.NewCli("wails", "The Wails CLI", "v3")
app := clir.NewCli("wails", "The Wails3 CLI", "v3")
app.NewSubCommandFunction("init", "Initialise a new project", commands.Init)
app.NewSubCommandFunction("build", "Build the project", commands.Build)
app.NewSubCommandFunction("dev", "Run in Dev mode", commands.Dev)
@@ -37,7 +37,7 @@ func main() {
task.Action(func() error {
return commands.RunTask(&taskFlags, task.OtherArgs())
})
task.LongDescription("\nUsage: wails task [taskname] [flags]\n\nTasks are defined in the `Taskfile.yaml` file. See https://taskfile.dev for more information.")
task.LongDescription("\nUsage: wails3 task [taskname] [flags]\n\nTasks are defined in the `Taskfile.yaml` file. See https://taskfile.dev for more information.")
generate := app.NewSubCommand("generate", "Generation tools")
generate.NewSubCommandFunction("build-assets", "Generate build assets", commands.GenerateBuildAssets)
generate.NewSubCommandFunction("icons", "Generate icons", commands.GenerateIcons)
@@ -46,6 +46,7 @@ func main() {
generate.NewSubCommandFunction("constants", "Generate JS constants from Go", commands.GenerateConstants)
generate.NewSubCommandFunction(".desktop", "Generate .desktop file", commands.GenerateDotDesktop)
generate.NewSubCommandFunction("appimage", "Generate Linux AppImage", commands.GenerateAppImage)
generate.NewSubCommandFunction("runtime", "Generate the latest compiled runtime", commands.GenerateRuntime)
plugin := app.NewSubCommand("plugin", "Plugin tools")
//plugin.NewSubCommandFunction("list", "List plugins", commands.PluginList)
@@ -54,6 +55,7 @@ func main() {
tool := app.NewSubCommand("tool", "Various tools")
tool.NewSubCommandFunction("checkport", "Checks if a port is open. Useful for testing if vite is running.", commands.ToolCheckPort)
tool.NewSubCommandFunction("watcher", "Watches files and runs a command when they change", commands.Watcher)
tool.NewSubCommandFunction("cp", "Copy files", commands.Cp)
app.NewSubCommandFunction("version", "Print the version", commands.Version)
@@ -13,7 +13,7 @@ window.go.main = {
* @param name {string}
* @returns {Promise<string>}
**/
Greet: function(name) { return wails.CallByID(1411160069, ...Array.prototype.slice.call(arguments, 0)); },
Greet: function(name) { return wails.Call.ByID(1411160069, ...Array.prototype.slice.call(arguments, 0)); },
/**
* GreetService.GreetPerson
@@ -21,6 +21,6 @@ window.go.main = {
* @param person {main.Person}
* @returns {Promise<string>}
**/
GreetPerson: function(person) { return wails.CallByID(4021313248, ...Array.prototype.slice.call(arguments, 0)); },
GreetPerson: function(person) { return wails.Call.ByID(4021313248, ...Array.prototype.slice.call(arguments, 0)); },
},
};

Some files were not shown because too many files have changed in this diff Show More