browserWindowSetParentWindow: Support null parameter

This commit is contained in:
softworkz
2025-11-09 02:25:33 +01:00
parent c5fb5f62d9
commit ed7cc434ea
2 changed files with 18 additions and 3 deletions

View File

@@ -1140,7 +1140,17 @@ public class BrowserWindow : ApiBase
/// passing null will turn current window into a top-level window.
/// </summary>
/// <param name="parent"></param>
public void SetParentWindow(BrowserWindow parent) => this.CallMethod1(JObject.FromObject(parent, _jsonSerializer));
public void SetParentWindow(BrowserWindow parent)
{
if (parent == null)
{
BridgeConnector.Socket.Emit("browserWindowSetParentWindow", Id, null);
}
else
{
BridgeConnector.Socket.Emit("browserWindowSetParentWindow", Id, JObject.FromObject(parent, _jsonSerializer));
}
}
/// <summary>
/// The parent window.

View File

@@ -721,9 +721,14 @@ export = (socket: Socket, app: Electron.App) => {
});
socket.on('browserWindowSetParentWindow', (id, parent) => {
const child = getWindowById(id);
if (!parent) {
// Clear parent: make this window top-level
child.setParentWindow(null);
return;
}
const browserWindow = BrowserWindow.fromId(parent.id);
getWindowById(id).setParentWindow(browserWindow);
child.setParentWindow(browserWindow);
});
socket.on('browserWindowGetParentWindow', (id) => {