diff --git a/README.md b/README.md
index b9a41e373..ef75f81cf 100644
--- a/README.md
+++ b/README.md
@@ -174,7 +174,7 @@ It is recommended at this stage to read the comprehensive documentation at [http
-
+
## Special Mentions
diff --git a/cmd/helpers.go b/cmd/helpers.go
index 560c392a8..7d67577c1 100644
--- a/cmd/helpers.go
+++ b/cmd/helpers.go
@@ -16,7 +16,7 @@ import (
wailsruntime "github.com/wailsapp/wails/runtime"
)
-const xgoVersion = "1.0.1"
+const xgoVersion = "1.16.2"
var fs = NewFSHelper()
diff --git a/cmd/linux.go b/cmd/linux.go
index 4d55bc044..81dcd6fc0 100644
--- a/cmd/linux.go
+++ b/cmd/linux.go
@@ -69,6 +69,8 @@ const (
EndeavourOS
// Crux linux distribution
Crux
+ // RHEL distribution
+ RHEL
)
// DistroInfo contains all the information relating to a linux distribution
@@ -131,6 +133,8 @@ func parseOsRelease(osRelease string) *DistroInfo {
result.Distribution = Fedora
case "centos":
result.Distribution = CentOS
+ case "rhel":
+ result.Distribution = RHEL
case "arch":
result.Distribution = Arch
case "archlabs":
diff --git a/cmd/linuxdb.yaml b/cmd/linuxdb.yaml
index 139202796..04db56c5e 100644
--- a/cmd/linuxdb.yaml
+++ b/cmd/linuxdb.yaml
@@ -138,6 +138,25 @@ distributions:
help: Please install with `sudo yum install gtk3-devel` and try again
- name: webkitgtk3-devel
help: Please install with `sudo yum install webkitgtk3-devel` and try again
+ rhel:
+ id: rhel
+ releases:
+ default:
+ version: default
+ name: Red Hat Enterprise Linux
+ gccversioncommand: *gccdumpversion
+ programs:
+ - name: gcc
+ help: Please install with `sudo yum install gcc-c++ make` and try again
+ - name: pkg-config
+ help: Please install with `sudo yum install pkgconf-pkg-config` and try again
+ - name: npm
+ help: Please install with `sudo yum install epel-release && sudo yum install nodejs` and try again
+ libraries:
+ - name: gtk3-devel
+ help: Please install with `sudo yum install gtk3-devel` and try again
+ - name: webkitgtk3-devel
+ help: Please install with `sudo yum install webkitgtk3-devel` and try again
fedora:
id: fedora
releases:
diff --git a/cmd/package.go b/cmd/package.go
index f0ad999d3..8a4798430 100644
--- a/cmd/package.go
+++ b/cmd/package.go
@@ -354,7 +354,7 @@ func (b *PackageHelper) PackageWindows(po *ProjectOptions, cleanUp bool) error {
"docker", "run", "--rm",
"-v", outputDir + ":/build",
"--entrypoint", "/bin/sh",
- "wailsapp/xgo:latest",
+ "wailsapp/xgo:1.16.2",
"-c", "/usr/bin/x86_64-w64-mingw32-windres -o /build/" + basename + "-res.syso /build/" + basename + ".rc",
}
if err := NewProgramHelper().RunCommandArray(args); err != nil {
diff --git a/cmd/system.go b/cmd/system.go
index ddf8ffdb8..76ab0b23c 100644
--- a/cmd/system.go
+++ b/cmd/system.go
@@ -283,7 +283,7 @@ func CheckDependencies(logger *Logger) (bool, error) {
libraryChecker = DpkgInstalled
case Arch, ArcoLinux, ArchLabs, Ctlos, Manjaro, ManjaroARM, EndeavourOS:
libraryChecker = PacmanInstalled
- case CentOS, Fedora, Tumbleweed, Leap:
+ case CentOS, Fedora, Tumbleweed, Leap, RHEL:
libraryChecker = RpmInstalled
case Gentoo:
libraryChecker = EqueryInstalled
diff --git a/cmd/version.go b/cmd/version.go
index 0d20c6256..c5b1e1d4c 100644
--- a/cmd/version.go
+++ b/cmd/version.go
@@ -1,4 +1,4 @@
package cmd
// Version - Wails version
-const Version = "v1.16.0"
+const Version = "v1.16.3"
diff --git a/config.go b/config.go
index 67ee7e9ef..3833dfdae 100644
--- a/config.go
+++ b/config.go
@@ -181,7 +181,7 @@ func newConfig(userConfig *AppConfig) (*AppConfig, error) {
MaxWidth: -1,
MaxHeight: -1,
Title: "My Wails App",
- Colour: "#FFF", // White by default
+ Colour: "",
HTML: defaultHTML,
}
diff --git a/lib/renderer/webview.go b/lib/renderer/webview.go
index 8999fe86d..d122a3e2b 100644
--- a/lib/renderer/webview.go
+++ b/lib/renderer/webview.go
@@ -111,11 +111,14 @@ func (w *WebView) Initialise(config interfaces.AppConfig, ipc interfaces.IPCMana
}
// SignalManager.OnExit(w.Exit)
-
+
// Set colour
- err := w.SetColour(config.GetColour())
- if err != nil {
- return err
+ color := config.GetColour()
+ if color != "" {
+ err := w.SetColour(color)
+ if err != nil {
+ return err
+ }
}
w.log.Info("Initialised")
diff --git a/lib/renderer/webview/webview.h b/lib/renderer/webview/webview.h
index da041b0d3..c1733c859 100644
--- a/lib/renderer/webview/webview.h
+++ b/lib/renderer/webview/webview.h
@@ -2337,11 +2337,10 @@ struct webview_priv
size.width = width;
size.height = height;
[w->priv.window setMaxSize:size];
-
- [w->priv.window setCollectionBehavior:NSWindowCollectionBehaviorFullScreenAuxiliary|NSWindowCollectionBehaviorFullScreenNone|NSWindowCollectionBehaviorFullScreenDisallowsTiling];
-
+
NSButton *button = [w->priv.window standardWindowButton:NSWindowZoomButton];
- [button setEnabled: NO];
+ [button performSelectorOnMainThread:@selector(setEnabled:) withObject:NO
+ waitUntilDone:NO];
}
WEBVIEW_API void webview_set_fullscreen(struct webview *w, int fullscreen)
diff --git a/runtime/assets/wails.js b/runtime/assets/wails.js
index ef6ae0fda..0971f49ea 100644
--- a/runtime/assets/wails.js
+++ b/runtime/assets/wails.js
@@ -1 +1 @@
-!function(n){var e={};function t(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return n[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=n,t.c=e,t.d=function(n,e,r){t.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:r})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,e){if(1&e&&(n=t(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var o in n)t.d(r,o,function(e){return n[e]}.bind(null,o));return r},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},t.p="",t(t.s=0)}([function(n,e,t){"use strict";t.r(e),t.d(e,"Init",(function(){return T}));var r={};t.r(r),t.d(r,"Debug",(function(){return l})),t.d(r,"Info",(function(){return s})),t.d(r,"Warning",(function(){return d})),t.d(r,"Error",(function(){return f})),t.d(r,"Fatal",(function(){return w}));var o={};t.r(o),t.d(o,"OpenURL",(function(){return b})),t.d(o,"OpenFile",(function(){return y}));var i={};t.r(i),t.d(i,"New",(function(){return k}));var a=[];function c(n,e,t){var r={type:n,callbackID:t,payload:e};!function(n){if(window.wailsbridge?window.wailsbridge.websocket.send(n):window.external.invoke(n),a.length>0)for(var e=0;e0)var a=setTimeout((function(){o(Error("Call to "+n+" timed out. Request ID: "+i))}),t);v[i]={timeoutHandle:a,reject:o,resolve:r};try{c("call",{bindingName:n,data:JSON.stringify(e)},i)}catch(n){console.error(n)}}))}function h(n,e){return g(".wails."+n,e)}function b(n){return h("Browser.OpenURL",n)}function y(n){return h("Browser.OpenFile",n)}p=window.crypto?function(){var n=new Uint32Array(1);return window.crypto.getRandomValues(n)[0]}:function(){return 9007199254740991*Math.random()};var m=function n(e,t){!function(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n),t=t||-1,this.Callback=function(n){return e.apply(null,n),-1!==t&&0===(t-=1)}},E={};function O(n,e,t){E[n]=E[n]||[];var r=new m(e,t);E[n].push(r)}function S(n){var e=JSON.stringify([].slice.apply(arguments).slice(1)),t={name:n,data:e};c("event",t)}var j={};function N(n){try{return new Function("var "+n),!0}catch(n){return!1}}function k(n,e){var t,r=this;if(!window.wails)throw Error("Wails is not initialised");var o=[];return this.subscribe=function(n){o.push(n)},this.set=function(e){t=e,window.wails.Events.Emit("wails:sync:store:updatedbyfrontend:"+n,JSON.stringify(t)),o.forEach((function(n){n(t)}))},this.update=function(n){var e=n(t);r.set(e)},window.wails.Events.On("wails:sync:store:updatedbybackend:"+n,(function(n){n=JSON.parse(n),t=n,o.forEach((function(n){n(t)}))})),e&&this.set(e),this}function C(){return(C=Object.assign||function(n){for(var e=1;e1)for(var r=0;r0)for(var e=0;e0)var a=setTimeout((function(){o(Error("Call to "+n+" timed out. Request ID: "+i))}),t);v[i]={timeoutHandle:a,reject:o,resolve:r};try{c("call",{bindingName:n,data:JSON.stringify(e)},i)}catch(n){console.error(n)}}))}function b(n,e){return g(".wails."+n,e)}function h(n){return b("Browser.OpenURL",n)}function y(n){return b("Browser.OpenFile",n)}p=window.crypto?function(){var n=new Uint32Array(1);return window.crypto.getRandomValues(n)[0]}:function(){return 9007199254740991*Math.random()};var m=function n(e,t){!function(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n),t=t||-1,this.Callback=function(n){return e.apply(null,n),-1!==t&&0===(t-=1)}},E={};function O(n,e,t){E[n]=E[n]||[];var r=new m(e,t);E[n].push(r)}function S(n){var e=JSON.stringify([].slice.apply(arguments).slice(1)),t={name:n,data:e};c("event",t)}var j={};function k(n){try{return new Function("var "+n),!0}catch(n){return!1}}function N(n,e){var t,r=this;if(!window.wails)throw Error("Wails is not initialised");var o=[];return this.subscribe=function(n){o.push(n)},this.set=function(e){t=e,window.wails.Events.Emit("wails:sync:store:updatedbyfrontend:"+n,JSON.stringify(t)),o.forEach((function(n){n(t)}))},this.update=function(n){var e=n(t);r.set(e)},window.wails.Events.On("wails:sync:store:updatedbybackend:"+n,(function(n){n=JSON.parse(n),t=n,o.forEach((function(n){n(t)}))})),e&&this.set(e),this}function C(){return(C=Object.assign||function(n){for(var e=1;e1)for(var r=0;r= 2.32, the external object is not passed to the window context.
+// However, IE will throw a strict mode error if window.external is assigned to
+// so we need to make sure that line of code isn't reached in IE
+
+// Using !window.external transpiles to `window.external = window.external || ...`
+// so we have to use an explicit if statement to prevent webpack from optimizing the code.
+if (window.external == undefined) {
+ window.external = {
+ invoke: function(x) {
+ window.webkit.messageHandlers.external.postMessage(x);
+ }
+ };
+}
+
// Setup internal calls
var internal = {
NewBinding,
@@ -61,7 +75,7 @@ window.onerror = function (msg, url, lineNo, columnNo, error) {
};
// Use firebug?
-if( window.usefirebug ) {
+if( window.usefirebug ) {
InjectFirebug();
}
@@ -71,4 +85,4 @@ Emit('wails:loaded');
// Nothing to init in production
export function Init(callback) {
callback();
-}
\ No newline at end of file
+}