Skip to content

Commit 20dfd2e

Browse files
committed
reopen the IDE where it was last closed
1 parent 2057e6d commit 20dfd2e

File tree

2 files changed

+26
-5
lines changed

2 files changed

+26
-5
lines changed

packages/selenium-ide/src/background/background.js

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,25 +79,29 @@ function openPanel(tab) {
7979
}
8080

8181
function openWindowFromStorageResolution() {
82-
let size = {
82+
let opts = {
8383
height: 690,
8484
width: 550
8585
};
8686
return browser.storage.local.get().then(storage => {
8787
if (sizeIsValid(storage.size)) {
88-
size.height = storage.size.height;
89-
size.width = storage.size.width;
88+
opts.height = storage.size.height;
89+
opts.width = storage.size.width;
90+
}
91+
if (originIsValid(storage.origin)) {
92+
opts.top = storage.origin.top;
93+
opts.left = storage.origin.left;
9094
}
9195
return browser.windows.create(Object.assign({
9296
url: browser.extension.getURL("assets/index.html"),
9397
type: "popup"
94-
}, size));
98+
}, opts));
9599
}).catch(e => {
96100
console.error(e);
97101
return browser.windows.create(Object.assign({
98102
url: browser.extension.getURL("assets/index.html"),
99103
type: "popup"
100-
}, size));
104+
}, opts));
101105
});
102106
}
103107

@@ -109,6 +113,14 @@ function sideIsValid(number) {
109113
return number && number.constructor.name === "Number" && number > 50;
110114
}
111115

116+
function originIsValid(origin) {
117+
return (origin && pointIsValid(origin.top) && pointIsValid(origin.left));
118+
}
119+
120+
function pointIsValid(point) {
121+
return point >= 0 && point.constructor.name === "Number";
122+
}
123+
112124
browser.browserAction.onClicked.addListener(openPanel);
113125

114126
browser.windows.onRemoved.addListener(function(windowId) {

packages/selenium-ide/src/neo/containers/Panel/index.jsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,14 @@ if (browser.windows) {
111111
return confirmationMessage;
112112
}
113113
});
114+
this.moveInterval = setInterval(() => {
115+
storage.set({
116+
origin: {
117+
top: window.screenY,
118+
left: window.screenX
119+
}
120+
});
121+
}, 3000);
114122
}
115123
handleResize(currWindow) {
116124
UiState.setWindowHeight(currWindow.innerHeight);
@@ -144,6 +152,7 @@ if (browser.windows) {
144152
UiState.setNavigationHover(false);
145153
}
146154
componentWillUnmount() {
155+
clearInterval(this.moveInterval);
147156
window.removeEventListener(this.resizeHandler);
148157
window.removeEventListener(this.quitHandler);
149158
}

0 commit comments

Comments
 (0)