From 5f4b1628e5a111780c0df5cd384e13cdaf607d57 Mon Sep 17 00:00:00 2001 From: theolivenbaum Date: Thu, 2 Sep 2021 16:34:20 +0200 Subject: [PATCH] fix display serialization, serialize only window id when sending ipc message --- ElectronNET.API/BridgeConnector.cs | 1 + ElectronNET.API/Entities/Display.cs | 4 ++-- ElectronNET.API/IpcMain.cs | 10 ++++++---- ElectronNET.Host/api/ipc.js | 4 ++-- ElectronNET.Host/api/ipc.ts | 4 ++-- 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/ElectronNET.API/BridgeConnector.cs b/ElectronNET.API/BridgeConnector.cs index 8a3a792..14a9def 100644 --- a/ElectronNET.API/BridgeConnector.cs +++ b/ElectronNET.API/BridgeConnector.cs @@ -151,6 +151,7 @@ namespace ElectronNET.API else { Console.WriteLine(formatString, args); + Console.WriteLine(E.ToString()); } } diff --git a/ElectronNET.API/Entities/Display.cs b/ElectronNET.API/Entities/Display.cs index 4d44f32..4d8cceb 100644 --- a/ElectronNET.API/Entities/Display.cs +++ b/ElectronNET.API/Entities/Display.cs @@ -26,12 +26,12 @@ /// /// Can be 0, 90, 180, 270, represents screen rotation in clock-wise degrees. /// - public int Rotation { get; set; } + public float Rotation { get; set; } /// /// Output device's pixel scale factor. /// - public int ScaleFactor { get; set; } + public float ScaleFactor { get; set; } /// /// Gets or sets the size. diff --git a/ElectronNET.API/IpcMain.cs b/ElectronNET.API/IpcMain.cs index a8416ff..42d31cb 100644 --- a/ElectronNET.API/IpcMain.cs +++ b/ElectronNET.API/IpcMain.cs @@ -182,10 +182,12 @@ namespace ElectronNET.API if(parameterObject.GetType().IsArray || parameterObject.GetType().IsGenericType && parameterObject is IEnumerable) { jarrays.Add(JArray.FromObject(parameterObject, _jsonSerializer)); - } else if(parameterObject.GetType().IsClass && !parameterObject.GetType().IsPrimitive && !(parameterObject is string)) + } + else if(parameterObject.GetType().IsClass && !parameterObject.GetType().IsPrimitive && !(parameterObject is string)) { jobjects.Add(JObject.FromObject(parameterObject, _jsonSerializer)); - } else if(parameterObject.GetType().IsPrimitive || (parameterObject is string)) + } + else if(parameterObject.GetType().IsPrimitive || (parameterObject is string)) { objects.Add(parameterObject); } @@ -193,11 +195,11 @@ namespace ElectronNET.API if(jobjects.Count > 0 || jarrays.Count > 0) { - BridgeConnector.Emit("sendToIpcRenderer", JObject.FromObject(browserWindow, _jsonSerializer), channel, jarrays.ToArray(), jobjects.ToArray(), objects.ToArray()); + BridgeConnector.Emit("sendToIpcRenderer", browserWindow.Id, channel, jarrays.ToArray(), jobjects.ToArray(), objects.ToArray()); } else { - BridgeConnector.Emit("sendToIpcRenderer", JObject.FromObject(browserWindow, _jsonSerializer), channel, data); + BridgeConnector.Emit("sendToIpcRenderer", browserWindow.Id, channel, data); } } diff --git a/ElectronNET.Host/api/ipc.js b/ElectronNET.Host/api/ipc.js index da637e5..a8e10fe 100644 --- a/ElectronNET.Host/api/ipc.js +++ b/ElectronNET.Host/api/ipc.js @@ -38,8 +38,8 @@ module.exports = (socket) => { socket.on('removeAllListenersIpcMainChannel', (channel) => { electron_1.ipcMain.removeAllListeners(channel); }); - socket.on('sendToIpcRenderer', (browserWindow, channel, ...data) => { - const window = electron_1.BrowserWindow.fromId(browserWindow.id); + socket.on('sendToIpcRenderer', (browserWindowId, channel, ...data) => { + const window = electron_1.BrowserWindow.fromId(browserWindowId); if (window) { window.webContents.send(channel, ...data); } diff --git a/ElectronNET.Host/api/ipc.ts b/ElectronNET.Host/api/ipc.ts index 8927ac9..db0be14 100644 --- a/ElectronNET.Host/api/ipc.ts +++ b/ElectronNET.Host/api/ipc.ts @@ -44,8 +44,8 @@ export = (socket: Socket) => { ipcMain.removeAllListeners(channel); }); - socket.on('sendToIpcRenderer', (browserWindow, channel, ...data) => { - const window = BrowserWindow.fromId(browserWindow.id); + socket.on('sendToIpcRenderer', (browserWindowId, channel, ...data) => { + const window = BrowserWindow.fromId(browserWindowId); if (window) { window.webContents.send(channel, ...data);