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 +}