@lynker-desktop/electron-window-manager 0.0.9-alpha.22 → 0.0.9-alpha.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -50,8 +50,8 @@ ewm.create({
50
50
  width: 100,
51
51
  height:100,
52
52
  webPreferences: {
53
- plugins: true,
54
- nodeIntegration: true,
53
+ plugins: true,
54
+ nodeIntegration: true,
55
55
  contextIsolation: false,
56
56
  backgroundThrottling: false,
57
57
  webSecurity: false,
@@ -62,6 +62,57 @@ ewm.create({
62
62
 
63
63
  完整的控制接口实现参见[example](./example)。
64
64
 
65
+ ### BrowserView 排序功能
66
+
67
+ 当创建BrowserView时,可以通过`zIndex`参数来控制BrowserView的显示顺序。数值越小,BrowserView越靠前显示。
68
+
69
+ ```javascript
70
+ // 创建具有不同zIndex层级的BrowserView
71
+ windowsManager.create({
72
+ type: 'BV',
73
+ name: 'background-view',
74
+ url: 'http://localhost:8000/background',
75
+ zIndex: 10, // zIndex较大,显示在后面
76
+ browserWindow: {
77
+ parent: mainWindowId
78
+ }
79
+ });
80
+
81
+ windowsManager.create({
82
+ type: 'BV',
83
+ name: 'foreground-view',
84
+ url: 'http://localhost:8000/foreground',
85
+ zIndex: 1, // zIndex较小,显示在前面
86
+ browserWindow: {
87
+ parent: mainWindowId
88
+ }
89
+ });
90
+ ```
91
+
92
+ #### 排序优化选项
93
+
94
+ 为了避免频繁排序导致的闪烁问题,提供了以下选项:
95
+
96
+ 1. **禁用自动排序**:在创建时设置 `disableAutoSort: true`
97
+ ```javascript
98
+ windowsManager.create({
99
+ type: 'BV',
100
+ name: 'manual-sort-view',
101
+ url: 'http://localhost:8000/view',
102
+ zIndex: 5,
103
+ disableAutoSort: true, // 禁用自动排序
104
+ browserWindow: {
105
+ parent: mainWindowId
106
+ }
107
+ });
108
+ ```
109
+
110
+ 2. **手动排序**:使用 `sortBrowserViews` 方法手动触发排序
111
+ ```javascript
112
+ // 在渲染进程中
113
+ ewm.sortBrowserViews(windowId); // 手动排序指定窗口的BrowserView
114
+ ```
115
+
65
116
  ### 运行 Example
66
117
 
67
118
  - yarn install && cd example/renderer && yarn
package/common/index.d.ts CHANGED
@@ -33,6 +33,10 @@ interface ElectronWindowsManagerOptionsBase {
33
33
  openDevTools?: boolean;
34
34
  preventOriginClose?: boolean;
35
35
  preventOriginNavigate?: boolean;
36
+ /** BrowserView zIndex层级,数值越小越靠前 */
37
+ zIndex?: number;
38
+ /** 是否禁用自动排序,默认false */
39
+ disableAutoSort?: boolean;
36
40
  }
37
41
  export interface BWItem extends BrowserWindow {
38
42
  _id: number;
@@ -44,6 +48,8 @@ export interface BWItem extends BrowserWindow {
44
48
  _extraData?: string;
45
49
  /** 初始化url */
46
50
  _initUrl?: string;
51
+ /** zIndex层级,数值越小越靠前 */
52
+ _zIndex?: number;
47
53
  }
48
54
  export interface BVItem extends BrowserView {
49
55
  id: number;
@@ -56,6 +62,8 @@ export interface BVItem extends BrowserView {
56
62
  _extraData?: string;
57
63
  /** 初始化url */
58
64
  _initUrl?: string;
65
+ /** zIndex层级,数值越小越靠前 */
66
+ _zIndex?: number;
59
67
  }
60
68
  /**
61
69
  * 预加载配置接口
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/common/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/common/index.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,10 @@ interface ElectronWindowsManagerOptionsBase {
33
33
  openDevTools?: boolean;
34
34
  preventOriginClose?: boolean;
35
35
  preventOriginNavigate?: boolean;
36
+ /** BrowserView zIndex层级,数值越小越靠前 */
37
+ zIndex?: number;
38
+ /** 是否禁用自动排序,默认false */
39
+ disableAutoSort?: boolean;
36
40
  }
37
41
  export interface BWItem extends BrowserWindow {
38
42
  _id: number;
@@ -44,6 +48,8 @@ export interface BWItem extends BrowserWindow {
44
48
  _extraData?: string;
45
49
  /** 初始化url */
46
50
  _initUrl?: string;
51
+ /** zIndex层级,数值越小越靠前 */
52
+ _zIndex?: number;
47
53
  }
48
54
  export interface BVItem extends BrowserView {
49
55
  id: number;
@@ -56,6 +62,8 @@ export interface BVItem extends BrowserView {
56
62
  _extraData?: string;
57
63
  /** 初始化url */
58
64
  _initUrl?: string;
65
+ /** zIndex层级,数值越小越靠前 */
66
+ _zIndex?: number;
59
67
  }
60
68
  /**
61
69
  * 预加载配置接口
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AAE3H,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,+BAA+B,EAAE,QAAQ,CAAC;IACxF,MAAM,CAAC,EAAE,MAAM,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,6BAA6B,EAAE,QAAQ,CAAC;IACpF,MAAM,CAAC,EAAE,MAAM,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;CAC7D;AAGD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,2BAA2B,CAAC,EAAE,GAAG,CAAC;KACnC;CACF;AAED,MAAM,MAAM,6BAA6B,GACrC,CAAC;IAAE,IAAI,CAAC,EAAE,IAAI,CAAC;IAAC,aAAa,CAAC,EAAE,iBAAiB,CAAA;CAAE,GAAG,IAAI,CAAC,iCAAiC,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,GACxH,CAAC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,aAAa,CAAC,EAAE,eAAe,CAAA;CAAE,GAAG,IAAI,CAAC,iCAAiC,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC;AAE1H,UAAU,iCAAiC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,SAAS,CAAC,EAAE;QACV,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,aAAa,CAAC,EAAE,iBAAiB,GAAG,eAAe,CAAC;IACpD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,MAAO,SAAQ,aAAa;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa;IACb,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,MAAO,SAAQ,WAAW;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa;IACb,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,eAAe;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,qBAAqB;IACrB,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,iBAAiB;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB;IAChB,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3M"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"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"}
@@ -82,6 +82,21 @@ export declare class WindowsManager {
82
82
  private _applyBrowserViewOptions;
83
83
  createPreloadWebContents(url: string): Promise<unknown>;
84
84
  getWindowForWebContentsId(wcId: number): Promise<BWItem | undefined>;
85
+ /**
86
+ * 手动对BrowserView进行排序
87
+ * @param windowId 窗口ID或名称
88
+ */
89
+ sortBrowserViews(windowId: string | number): void;
90
+ /**
91
+ * 防抖的排序方法
92
+ * @param window 目标窗口
93
+ */
94
+ private sortBrowserViewsDebounced;
95
+ /**
96
+ * 对BrowserView进行排序
97
+ * @param window 目标窗口
98
+ */
99
+ private _sortBrowserViews;
85
100
  }
86
101
  export declare let isInitialized: boolean;
87
102
  export declare const initialize: (preload?: string, loadingViewUrl?: string, errorViewUrl?: string, preloadWebContentsConfig?: PreloadWebContentsConfig, webviewDomainWhiteList?: string[]) => WindowsManager;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/main/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/main/index.ts"],"names":[],"mappings":"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"}
package/esm/main/index.js CHANGED
@@ -70,6 +70,13 @@ class WindowsManager {
70
70
  // 创建队列相关属性
71
71
  this.createQueue = [];
72
72
  this.isCreating = false;
73
+ /**
74
+ * 防抖的排序方法
75
+ * @param window 目标窗口
76
+ */
77
+ this.sortBrowserViewsDebounced = lodash.debounce((window) => {
78
+ this._sortBrowserViews(window);
79
+ }, 50);
73
80
  this.preload = preload;
74
81
  this.windows = new Map();
75
82
  this.loadingViewUrl = `${loadingViewUrl ?? ''}`;
@@ -256,6 +263,8 @@ class WindowsManager {
256
263
  try {
257
264
  // @ts-ignore
258
265
  instance._id = instance.webContents.id;
266
+ // 设置默认zIndex层级
267
+ instance._zIndex = 0;
259
268
  }
260
269
  catch (error) {
261
270
  log('error', '预加载 BV 设置 _id 失败', error);
@@ -312,7 +321,7 @@ class WindowsManager {
312
321
  */
313
322
  async _createWindow(options) {
314
323
  let window;
315
- const { usePreload = true, type = 'BW', name = 'anonymous', url, loadingView = { url: undefined }, errorView = { url: undefined }, browserWindow: browserWindowOptions, openDevTools = false, preventOriginClose = false, } = options;
324
+ const { usePreload = true, type = 'BW', name = 'anonymous', url, loadingView = { url: undefined }, errorView = { url: undefined }, browserWindow: browserWindowOptions, openDevTools = false, preventOriginClose = false, zIndex = 0, } = options;
316
325
  options.type = type;
317
326
  // 优先复用预创建实例
318
327
  let preloadWin = null;
@@ -531,6 +540,8 @@ class WindowsManager {
531
540
  window._name = name;
532
541
  window._extraData = `${options?.extraData || ''}`;
533
542
  window._initUrl = `${options?.url || ''}`;
543
+ // 设置zIndex层级
544
+ window._zIndex = options.zIndex ?? 0;
534
545
  log('log', 'create 5: ', window.id, window._id, window._name);
535
546
  if (loadingView?.url) {
536
547
  if (type === 'BW') {
@@ -736,23 +747,44 @@ class WindowsManager {
736
747
  });
737
748
  try {
738
749
  const _addBrowserView = window.addBrowserView;
739
- window.addBrowserView = (view) => {
750
+ window.addBrowserView = (view, notSort = false) => {
740
751
  _addBrowserView.call(window, view);
752
+ if (notSort) {
753
+ return;
754
+ }
741
755
  handleBrowserViewFocus(view);
756
+ // 添加BrowserView后重新排序(如果未禁用自动排序)
757
+ if (!options.disableAutoSort) {
758
+ this.sortBrowserViewsDebounced(window);
759
+ }
742
760
  };
743
761
  const _removeBrowserView = window.removeBrowserView;
744
- window.removeBrowserView = (view) => {
762
+ window.removeBrowserView = (view, notSort = false) => {
745
763
  _removeBrowserView.call(window, view);
764
+ if (notSort) {
765
+ return;
766
+ }
746
767
  handleBrowserViewBlur(view);
768
+ // 移除BrowserView后重新排序(如果未禁用自动排序)
769
+ if (!options.disableAutoSort) {
770
+ this.sortBrowserViewsDebounced(window);
771
+ }
747
772
  };
748
773
  const _setBrowserView = window.setBrowserView;
749
- window.setBrowserView = (view) => {
774
+ window.setBrowserView = (view, notSort = false) => {
750
775
  const views = window.getBrowserViews() || [];
751
776
  for (const view of views) {
752
777
  handleBrowserViewBlur(view);
753
778
  }
754
779
  _setBrowserView.call(window, view);
780
+ if (notSort) {
781
+ return;
782
+ }
755
783
  handleBrowserViewFocus(view);
784
+ // 设置BrowserView后重新排序(如果未禁用自动排序)
785
+ if (!options.disableAutoSort) {
786
+ this.sortBrowserViewsDebounced(window);
787
+ }
756
788
  };
757
789
  }
758
790
  catch (error) {
@@ -790,7 +822,7 @@ class WindowsManager {
790
822
  }
791
823
  const loadLoadingView = () => {
792
824
  const [viewWidth, viewHeight] = window.getSize();
793
- window.setBrowserView(_loadingView);
825
+ window.addBrowserView(_loadingView);
794
826
  _loadingView.setBounds({
795
827
  x: 0,
796
828
  y: 0,
@@ -830,7 +862,7 @@ class WindowsManager {
830
862
  return;
831
863
  }
832
864
  if (_loadingView.webContents && !_loadingView.webContents.isDestroyed()) {
833
- window.setBrowserView(_loadingView);
865
+ window.addBrowserView(_loadingView);
834
866
  }
835
867
  else {
836
868
  // if loadingView has been destroyed
@@ -1167,7 +1199,6 @@ class WindowsManager {
1167
1199
  const wc = webContents.fromId(wcId);
1168
1200
  if (!wc)
1169
1201
  return undefined;
1170
- log('log', 'getWindowByWebContentsId', wcId);
1171
1202
  // Case 1: BrowserView
1172
1203
  for (const win of BrowserWindow.getAllWindows()) {
1173
1204
  for (const view of win.getBrowserViews()) {
@@ -1176,20 +1207,86 @@ class WindowsManager {
1176
1207
  }
1177
1208
  }
1178
1209
  }
1179
- log('log', 'getWindowByWebContentsId 1', wcId);
1180
1210
  // Case 2: WebView
1181
1211
  // webview 有 hostWebContents,指向它所在的 BrowserWindow 的 webContents
1182
1212
  if (wc.hostWebContents) {
1183
- log('log', 'getWindowByWebContentsId 2', wcId);
1184
1213
  return BrowserWindow.fromWebContents(wc.hostWebContents);
1185
1214
  }
1186
- log('log', 'getWindowByWebContentsId 3', wcId);
1187
1215
  // Case 3: 普通 window 本身
1188
1216
  const win = BrowserWindow.fromWebContents(wc);
1189
1217
  if (win)
1190
1218
  return win;
1191
1219
  return undefined;
1192
1220
  }
1221
+ /**
1222
+ * 手动对BrowserView进行排序
1223
+ * @param windowId 窗口ID或名称
1224
+ */
1225
+ sortBrowserViews(windowId) {
1226
+ const window = this.get(windowId);
1227
+ if (window && window._type === 'BW') {
1228
+ this._sortBrowserViews(window);
1229
+ }
1230
+ }
1231
+ /**
1232
+ * 对BrowserView进行排序
1233
+ * @param window 目标窗口
1234
+ */
1235
+ _sortBrowserViews(window) {
1236
+ try {
1237
+ const views = window.getBrowserViews() || [];
1238
+ if (views.length <= 1)
1239
+ return;
1240
+ // 按zIndex层级排序,数值小的在前
1241
+ const sortedViews = views.sort((a, b) => {
1242
+ const zIndexA = a._zIndex ?? 0;
1243
+ const zIndexB = b._zIndex ?? 0;
1244
+ return zIndexA - zIndexB;
1245
+ });
1246
+ // 检查是否已经按正确顺序排列
1247
+ let needsReorder = false;
1248
+ for (let i = 0; i < views.length; i++) {
1249
+ if (views[i] !== sortedViews[i]) {
1250
+ needsReorder = true;
1251
+ break;
1252
+ }
1253
+ }
1254
+ // 如果已经按正确顺序排列,则不需要重新排序
1255
+ if (!needsReorder)
1256
+ return;
1257
+ // 使用批量操作来减少闪烁
1258
+ // 临时隐藏窗口内容
1259
+ const wasVisible = window.isVisible();
1260
+ if (wasVisible) {
1261
+ // window.hide();
1262
+ }
1263
+ // 移除所有BrowserView
1264
+ views.forEach(view => {
1265
+ // @ts-ignore
1266
+ window.removeBrowserView(view, true);
1267
+ });
1268
+ // 按正确顺序重新添加
1269
+ sortedViews.forEach((view, index) => {
1270
+ if (index === 0) {
1271
+ // 第一个设置为当前视图
1272
+ // @ts-ignore
1273
+ window.setBrowserView(view, true);
1274
+ }
1275
+ else {
1276
+ // 其他视图添加到后面
1277
+ // @ts-ignore
1278
+ window.addBrowserView(view, true);
1279
+ }
1280
+ });
1281
+ // 恢复窗口显示
1282
+ if (wasVisible) {
1283
+ // window.show();
1284
+ }
1285
+ }
1286
+ catch (error) {
1287
+ log('error', 'sortBrowserViews error:', error);
1288
+ }
1289
+ }
1193
1290
  }
1194
1291
  // @ts-ignore
1195
1292
  global['__ELECTRON_WINDOWS_MANAGER__'] = undefined;
@@ -1218,12 +1315,29 @@ const initialize = (preload, loadingViewUrl, errorViewUrl, preloadWebContentsCon
1218
1315
  findWin.webContents.reload();
1219
1316
  }, 100);
1220
1317
  }
1318
+ if (opt.data.browserWindow?.parent) {
1319
+ try {
1320
+ if (findWin._type === 'BW') {
1321
+ findWin.setParentWindow(BrowserWindow.fromId(Number(opt.data.browserWindow.parent)));
1322
+ }
1323
+ if (findWin._type === 'BV') {
1324
+ BrowserWindow.fromId(Number(opt.data.browserWindow.parent))?.addBrowserView(findWin);
1325
+ }
1326
+ }
1327
+ catch (error) {
1328
+ log('error', 'setParentWindow error:', error);
1329
+ }
1330
+ }
1331
+ if (findWin?._type === 'BV' && opt.data.zIndex) {
1332
+ findWin._zIndex = opt.data.zIndex;
1333
+ }
1221
1334
  return {
1222
1335
  winId: Number(`${findWin?.id || findWin?._id || -1}`),
1223
1336
  winName: `${findWin?._name || ''}`,
1224
1337
  winType: `${findWin?._type || ''}`,
1225
1338
  winExtraData: `${findWin?._extraData || ''}`,
1226
1339
  winInitUrl: `${findWin?._initUrl || ''}`,
1340
+ winZIndex: `${findWin._zIndex || 0}`,
1227
1341
  };
1228
1342
  }
1229
1343
  const res = await wm.create(opt.data);
@@ -1233,6 +1347,7 @@ const initialize = (preload, loadingViewUrl, errorViewUrl, preloadWebContentsCon
1233
1347
  winType: `${res?._type || ''}`,
1234
1348
  winExtraData: `${res?._extraData || ''}`,
1235
1349
  winInitUrl: `${res?._initUrl || ''}`,
1350
+ winZIndex: `${res?._zIndex || 0}`,
1236
1351
  };
1237
1352
  }
1238
1353
  if (data?.type === 'get') {
@@ -1244,6 +1359,7 @@ const initialize = (preload, loadingViewUrl, errorViewUrl, preloadWebContentsCon
1244
1359
  winType: `${res?._type || ''}`,
1245
1360
  winExtraData: `${res?._extraData || ''}`,
1246
1361
  winInitUrl: `${res?._initUrl || ''}`,
1362
+ winZIndex: `${res?._zIndex || 0}`,
1247
1363
  };
1248
1364
  }
1249
1365
  if (data?.type === 'getAll') {
@@ -1257,6 +1373,7 @@ const initialize = (preload, loadingViewUrl, errorViewUrl, preloadWebContentsCon
1257
1373
  winType: `${i?._type || ''}`,
1258
1374
  winExtraData: `${i?._extraData || ''}`,
1259
1375
  winInitUrl: `${i?._initUrl || ''}`,
1376
+ winZIndex: `${i?._zIndex || 0}`,
1260
1377
  };
1261
1378
  });
1262
1379
  return obj;
@@ -1280,6 +1397,7 @@ const initialize = (preload, loadingViewUrl, errorViewUrl, preloadWebContentsCon
1280
1397
  winType: `${res?._type || ''}`,
1281
1398
  winExtraData: `${res?._extraData || ''}`,
1282
1399
  winInitUrl: `${res?._initUrl || ''}`,
1400
+ winZIndex: `${res?._zIndex || 0}`,
1283
1401
  };
1284
1402
  }
1285
1403
  return undefined;
@@ -1294,6 +1412,7 @@ const initialize = (preload, loadingViewUrl, errorViewUrl, preloadWebContentsCon
1294
1412
  winType: `${res?._type || ''}`,
1295
1413
  winExtraData: `${res?._extraData || ''}`,
1296
1414
  winInitUrl: `${res?._initUrl || ''}`,
1415
+ winZIndex: `${res?._zIndex || 0}`,
1297
1416
  };
1298
1417
  }
1299
1418
  return undefined;
@@ -1352,6 +1471,11 @@ const initialize = (preload, loadingViewUrl, errorViewUrl, preloadWebContentsCon
1352
1471
  const res = await wm.createPreloadWebContents(opt.data);
1353
1472
  return res;
1354
1473
  }
1474
+ if (data?.type === 'sortBrowserViews') {
1475
+ const opt = data;
1476
+ wm.sortBrowserViews(opt.data);
1477
+ return true;
1478
+ }
1355
1479
  return undefined;
1356
1480
  });
1357
1481
  return wm;