remove recreate behaviour from activate event on mac, and emit event to handler instead

This commit is contained in:
rafael-aero
2021-08-30 13:22:07 +02:00
parent 35b18a9501
commit bd45e23768
6 changed files with 55 additions and 27 deletions

View File

@@ -25,6 +25,41 @@ namespace ElectronNET.API
/// </summary>
public static bool SocketDebug { get; set; }
/// <summary>
/// Emitted when the user clicks on the dock on Mac
/// <para/>
/// </summary>
[SupportedOSPlatform("macos")]
public event Action Activate
{
add
{
if (_appActivate == null)
{
BridgeConnector.On("app-activate", () =>
{
if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
_appActivate();
}
});
}
_appActivate += value;
}
remove
{
_appActivate -= value;
if (_appActivate == null)
{
BridgeConnector.Off("app-activate");
}
}
}
private event Action _appActivate;
/// <summary>
/// Emitted when all windows have been closed.
/// <para/>

View File

@@ -116,14 +116,14 @@ namespace ElectronNET.API
}
});
if (loadUrl.ToUpper() == "HTTP://LOCALHOST")
if (string.Equals(loadUrl, "HTTP://LOCALHOST", StringComparison.InvariantCultureIgnoreCase))
{
loadUrl = $"{loadUrl}:{BridgeSettings.WebPort}";
}
// Workaround Windows 10 / Electron Bug
// https://github.com/electron/electron/issues/4045
if (isWindows10())
if (IsWindows10())
{
options.Width = options.Width + 14;
options.Height = options.Height + 7;
@@ -140,22 +140,20 @@ namespace ElectronNET.API
{
// Workaround Windows 10 / Electron Bug
// https://github.com/electron/electron/issues/4045
if (isWindows10())
if (IsWindows10())
{
options.X = options.X - 7;
}
BridgeConnector.Emit("createBrowserWindow", JObject.FromObject(options, _keepDefaultValuesSerializer), loadUrl);
}
return taskCompletionSource.Task;
}
private bool isWindows10()
private bool IsWindows10()
{
return RuntimeInformation.OSDescription.Contains("Windows 10");
return OperatingSystem.IsWindowsVersionAtLeast(10);
}
/// <summary>