* Init GTK in `NewFrontend`, not `init`
So apps that have a headless / non-gui mode will be able to run, since
they needn't call `NewFrontend` (which is called by `CreateApp`).
Previously, `init` would call `C.gtk_init` regardless of whether
CreateApp was called.
Also change to call `C.gtk_init_check` with a panic, instead of
`C.gtk_init`, since `gtk_init` just exits the process if it fails,
without a sensible error message.
Fixes#2628.
* Update changelog
* [assetserver, darwin] Fix copying request headers by using strdup
* [assetserver, linux] Fake some basic http headers for legacy webkit2 versions to support proxying requests to other servers
This fixes the devserver on v2 for newer vite versions that use the custom
scheme.
* [v2, windows] 304 responses are going to hang the WebView2 so prevent them by removing cache related headers in the request.
* [v2, dev] Now uses the custom schemes `wails://` on macOS and Linux for all Vite versions.
Prevent missing reload after fast multiple savings on Linux and Windows.
* [v2, darwin] Add "Hide, Hide Others, Show All“ to appmenu
This also includes shortcuts support for those commands.
Arrange the menu items in the well known MacOS order.
* [v2, darwin] Add Window menu with well known shortcuts Minimize, Full-Screen and Zoom.
This fixes some long-standing inconsistencies between
dev mode builds and production builds but is a breaking
change. Dev mode uses custom scheme for Vite versions >= 3.0.0
and for older it still behaves in the old way.
* Use json.Marshal instead of strconv.Quote to correctly support unicode
* Add fix to changelog
---------
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* [runtime] Make it possible to restore old drag behaviour on windows with window.wails.flags.deferDragToMouseMove
* [runtime] Use deferDragToMouseMove as new default
This enhanced version should work well in all cases for Windows:
- No lag/delayed start of dragging
- Double-Clicks and Single-Click events still work in JavaScript on elements
* [docs] Add changelog
The old error handling fails on WebView2Runtimes > 110.0.1587.69 and
will show a "connection refused" page and reloads after a short time.
After the reload everything worked as expected again.
* update function notifyListeners in events.js
newEventListenerList will delete wrong listener if it call splice method in for-loop.
* Update events.js
---------
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* Bindings: work in better typescript generation
* More work on generating typescript
* Bindings: fix a couple of failing tests
* Binding: fix map bindings
* Bindings: comment out debug statement
* Bindings: misc cleanup
* include ts gen pref and suff in class fields
* fix nested namespaces not prefixed
* add basic unit test for parent child
* test for diff namespaces imports
* make entityReturn type func more generic
* get full entity name for TS args list
* fix failing test on empty struct
* wire up gen tests
* remove comment
* remove redundant line
This removes the sometime lagging experience when
starting to drag on Windows. But it's still possible to use
double-click events for adding e.g. a WindowToggleMaximise.
* Update libwebkit package name for Fedora
Fixes issue with `wails doctor` not detecting updated version of libwebkit on Fedora
* Keep existing libwebkit package
...for backwards compatibility
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
This will show a message on the console
"+[CATransaction synchronize] called within transaction"
but there's seem no way to mitigate that. Still everything
works as expected.
* [assets] Improve error message if no `index.html` could be found in the assets
* [assetoptions] Valide options that at least one property has been set
* [assetserver] Move defaultHTML handling for 404 from assethandler to assetserver
* [assetserver] Add support for serving the index.html file when requesting a directory
* [docs] Update changelog
* add tspostfix and tsprefix flags + organise under struct
* postifx -> suffix
* tsPrefix options on bindings struct
* pass prefix and suffix to the executable
* add support for CLI flags for generating module
* method to set TSpref/suff to bindings
* use passed ts prefix for typescriptify
* add brief Readme udpate to include new flags
* create reusable common flags
* use common flags instead of hardcoded text
* support tsprefix & suffix for dev
* add tsPrefix & tsSuffix for build cmd
* take pref & suff in account when gen d.ts
* export colorsful log functions into utils for reuse
* detect and warn the user about usage of reserved keyword
* fmt
* add TrimSpace on fn input
* refactor utils -> logutils
* add bindings -> ts_generation options to wailsjson parse
* use wailsjson for ts generation
* update warning message + extract to func
* remove suff/pref info from readme
* update json schema
* add tests for prefix and suffix case
* rename suffix method
* Update v2/internal/typescriptify/typescriptify.go
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* Update website/static/schemas/config.v2.json
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* Update website/static/schemas/config.v2.json
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* update changelog
* Minor tweaks
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* [assetserver] Add support for HTTP Middlewares
* [dev] Disable frontend DevServer if no Assets has been defined and inform user
* [dev] Consistent WebSocket behaviour in dev and prod mode for assets handler and middleware
In prod mode we can't support WebSockets so make sure the
assets handler and middleware never see WebSockets in dev mode.
* [templates] Migrate to new AssetServer option
* [docs] Add assetserver.Options to the reference
* Add single listener deregistration
* Return function to stop listening, updates types
* Add missing returns, improve documentation
* Duplicate interface in go
* Define eventName
* Use lo instead for filtering
* Move logger to Interface. Add sample test.
* Add vite test for events
* Add js test workflow
* Add corresponding go method to remove all events
* Update documentation
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* [webview2loader] Add full featured go implementation
The new go loader can be activated with the exp_gowebview2loader build tag.
* [build] Add information for using the new webvie2loader
Webview2 on Windows returns a potential whitespace when defining the
style like this `style="--wails-draggable: drag"`. Whereas Darwin already
trims the value and returns "drag" and not " drag".
* Support parsing embed directives from package
* Validate `embed` directives on build
* `.gitkeep` -> `gitkeep`
* Make step silent. Fix for `wails dev`
* #1057 expose ZoomFactor get/set and add the respective windows only options
* Remove debug log, use IsZoomControlEnabled as well
* use math.float to/from 64bits functions instead
* Add new windows options ZoomFactor and IsZoomControlEnabled doc
* Grammar
* Update options.mdx
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>