Skip to content

Commit aa3f90c

Browse files
change postMessage to callback in libfilepicker, fix 100% reject bug
1 parent 4dd4d7a commit aa3f90c

File tree

2 files changed

+14
-13
lines changed

2 files changed

+14
-13
lines changed

apps/fsapp.app/operations.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -217,8 +217,8 @@ async function selectAction(selected) {
217217
.getAttribute("data-path")
218218
.replace(/(\/)\1+/g, "$1"),
219219
};
220-
221-
window.parent.postMessage(fileData, "*");
220+
window.callback({ data: fileData });
221+
// window.parent.postMessage(fileData, "*");
222222
}
223223
} else if (selected.length > 1 && filePicker.multiple) {
224224
let dataPaths = [];
@@ -237,8 +237,8 @@ async function selectAction(selected) {
237237
id: filePicker.id,
238238
filePath: dataPaths,
239239
};
240-
241-
window.parent.postMessage(fileData, "*");
240+
window.callback({ data: fileData });
241+
// window.parent.postMessage(fileData, "*");
242242
} else if (selected.length == 0) {
243243
if (filePicker.type == "dir") {
244244
let fileData = {
@@ -249,7 +249,7 @@ async function selectAction(selected) {
249249
.getAttribute("data-current-path"),
250250
};
251251

252-
window.parent.postMessage(fileData, "*");
252+
window.callback({ data: fileData });
253253
}
254254
}
255255
}

apps/libfilepicker.lib/handler.js

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,22 +35,26 @@ export function selectFile(options) {
3535
let receivedData = event.data;
3636
let filePath = receivedData.filePath;
3737

38-
parent.removeEventListener("message", handleMessage);
38+
// parent.removeEventListener("message", handleMessage);
3939

4040
picker.close();
4141
resolve(filePath);
4242
}
4343
}
44-
parent.addEventListener("message", handleMessage);
44+
// parent.addEventListener("message", handleMessage);
4545
picker.content.appendChild(iframe);
4646
Object.assign(iframe.contentWindow, {
4747
anura,
4848
AliceWM,
4949
ExternalApp,
5050
LocalFS,
5151
instance: options.app,
52+
callback: handleMessage,
5253
instanceWindow: picker,
5354
});
55+
picker.onclose = () => {
56+
reject("User cancelled");
57+
};
5458
});
5559
}
5660

@@ -65,10 +69,6 @@ export function selectFolder(options) {
6569
let picker = anura.wm.create(options.app, "Select a Folder...");
6670
let id = crypto.randomUUID();
6771

68-
picker.onclose = () => {
69-
reject("User cancelled");
70-
};
71-
7272
let iframe = document.createElement("iframe");
7373
iframe.style =
7474
"top:0; left:0; bottom:0; right:0; width:100%; height:100%; border:none; margin:0; padding:0;";
@@ -91,20 +91,21 @@ export function selectFolder(options) {
9191
let receivedData = event.data;
9292
let filePath = receivedData.filePath;
9393

94-
parent.removeEventListener("message", handleMessage);
94+
// parent.removeEventListener("message", handleMessage);
9595

9696
picker.close();
9797
resolve(filePath);
9898
}
9999
}
100-
parent.addEventListener("message", handleMessage);
100+
// parent.addEventListener("message", handleMessage);
101101
picker.content.appendChild(iframe);
102102
Object.assign(iframe.contentWindow, {
103103
anura,
104104
AliceWM,
105105
ExternalApp,
106106
LocalFS,
107107
instance: options.app,
108+
callback: handleMessage,
108109
instanceWindow: picker,
109110
});
110111
});

0 commit comments

Comments
 (0)