@raydiant/playlist-window-manager 0.28.2-rc1 → 0.28.2-rc3
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.
|
@@ -128,6 +128,7 @@ var BrowserWindowRenderer = /** @class */ (function () {
|
|
|
128
128
|
},
|
|
129
129
|
})
|
|
130
130
|
: this.createOrGetPooledBrowserWindow(windowId, {
|
|
131
|
+
paintWhenInitiallyHidden: false,
|
|
131
132
|
show: false,
|
|
132
133
|
/**
|
|
133
134
|
* This option fixes window not being able to take fullscreen leaving
|
|
@@ -905,7 +905,7 @@ var PlaylistWindowManager = /** @class */ (function (_super) {
|
|
|
905
905
|
};
|
|
906
906
|
PlaylistWindowManager.prototype.swapWindows = function () {
|
|
907
907
|
return __awaiter(this, void 0, void 0, function () {
|
|
908
|
-
var nextPreviewPresentationId, preview, result, nextPresentation, shouldPreload;
|
|
908
|
+
var nextPreviewPresentationId, preview, result, nextPresentation, shouldPreload, closeWindowPromise;
|
|
909
909
|
return __generator(this, function (_a) {
|
|
910
910
|
switch (_a.label) {
|
|
911
911
|
case 0:
|
|
@@ -941,19 +941,22 @@ var PlaylistWindowManager = /** @class */ (function (_super) {
|
|
|
941
941
|
if (this.nextWindow) {
|
|
942
942
|
this.nextWindow.show(this.isFocused);
|
|
943
943
|
}
|
|
944
|
-
if (!this.currentWindow) return [3 /*break*/,
|
|
945
|
-
|
|
946
|
-
|
|
944
|
+
if (!this.currentWindow) return [3 /*break*/, 2];
|
|
945
|
+
// TODO: Kind of a hack, could use win.on('show') event to trigger hide?
|
|
946
|
+
// Would only work in electron environment so need to do in BrowserWindowRenderer.
|
|
947
|
+
// Should show be async then?
|
|
948
|
+
// Or try paintWhenInitiallyHidden: false?
|
|
949
|
+
if (this.options.closeWindowDelayMs !== undefined) {
|
|
950
|
+
// Don't await here because this will cause a slight delay when playing the next window.
|
|
951
|
+
// Instead we want to wait for window close at the end of this method.
|
|
952
|
+
closeWindowPromise = delay(this.options.closeWindowDelayMs);
|
|
953
|
+
}
|
|
954
|
+
this.currentWindow.hide();
|
|
955
|
+
return [4 /*yield*/, this.removeCurrentWindow()];
|
|
947
956
|
case 1:
|
|
948
957
|
_a.sent();
|
|
949
958
|
_a.label = 2;
|
|
950
959
|
case 2:
|
|
951
|
-
this.currentWindow.hide();
|
|
952
|
-
return [4 /*yield*/, this.removeCurrentWindow()];
|
|
953
|
-
case 3:
|
|
954
|
-
_a.sent();
|
|
955
|
-
_a.label = 4;
|
|
956
|
-
case 4:
|
|
957
960
|
// Swap windows.
|
|
958
961
|
this.currentWindow = this.nextWindow;
|
|
959
962
|
if (this.currentWindow) {
|
|
@@ -981,7 +984,12 @@ var PlaylistWindowManager = /** @class */ (function (_super) {
|
|
|
981
984
|
this.nextWindow = null;
|
|
982
985
|
this.nextPresentation = null;
|
|
983
986
|
}
|
|
984
|
-
return [
|
|
987
|
+
if (!closeWindowPromise) return [3 /*break*/, 4];
|
|
988
|
+
return [4 /*yield*/, closeWindowPromise];
|
|
989
|
+
case 3:
|
|
990
|
+
_a.sent();
|
|
991
|
+
_a.label = 4;
|
|
992
|
+
case 4: return [2 /*return*/];
|
|
985
993
|
}
|
|
986
994
|
});
|
|
987
995
|
});
|
package/package.json
CHANGED
|
@@ -753,9 +753,16 @@ export default class PlaylistWindowManager extends EventEmitter {
|
|
|
753
753
|
|
|
754
754
|
// If current window isn't defined we don't need to hide it but we still
|
|
755
755
|
// want to make the next window the new current window.
|
|
756
|
+
let closeWindowPromise;
|
|
756
757
|
if (this.currentWindow) {
|
|
758
|
+
// TODO: Kind of a hack, could use win.on('show') event to trigger hide?
|
|
759
|
+
// Would only work in electron environment so need to do in BrowserWindowRenderer.
|
|
760
|
+
// Should show be async then?
|
|
761
|
+
// Or try paintWhenInitiallyHidden: false?
|
|
757
762
|
if (this.options.closeWindowDelayMs !== undefined) {
|
|
758
|
-
await delay
|
|
763
|
+
// Don't await here because this will cause a slight delay when playing the next window.
|
|
764
|
+
// Instead we want to wait for window close at the end of this method.
|
|
765
|
+
closeWindowPromise = delay(this.options.closeWindowDelayMs);
|
|
759
766
|
}
|
|
760
767
|
this.currentWindow.hide();
|
|
761
768
|
await this.removeCurrentWindow();
|
|
@@ -791,6 +798,10 @@ export default class PlaylistWindowManager extends EventEmitter {
|
|
|
791
798
|
this.nextWindow = null;
|
|
792
799
|
this.nextPresentation = null;
|
|
793
800
|
}
|
|
801
|
+
|
|
802
|
+
if (closeWindowPromise) {
|
|
803
|
+
await closeWindowPromise;
|
|
804
|
+
}
|
|
794
805
|
}
|
|
795
806
|
|
|
796
807
|
private evalRuleEngine(warnIfPreloadMismatch = true): EvalRuleEngineResult {
|