From 950b0155b263da1b6a8f9cae12b918541056ac13 Mon Sep 17 00:00:00 2001 From: Lance Ewing Date: Sun, 7 Apr 2024 22:07:26 +0100 Subject: [PATCH] Adding appendChild fix for GWT game input, to see if it works in Safari. --- .../com/agifans/agile/gwt/GwtDialogHandler.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/html/src/main/java/com/agifans/agile/gwt/GwtDialogHandler.java b/html/src/main/java/com/agifans/agile/gwt/GwtDialogHandler.java index 220f7d1..403ab77 100644 --- a/html/src/main/java/com/agifans/agile/gwt/GwtDialogHandler.java +++ b/html/src/main/java/com/agifans/agile/gwt/GwtDialogHandler.java @@ -280,8 +280,12 @@ private final native void showHtmlOpenFileDialog(String type, GwtOpenFileResults console.log('Finished creating input element of type file'); + document.body.appendChild(fileInputElem); + // The change event occurs after a file is chosen. fileInputElem.addEventListener("change", function(event) { + document.body.removeChild(fileInputElem); + if (this.files.length === 0) { console.log('No files selected for import'); @@ -319,6 +323,15 @@ private final native void showHtmlOpenFileDialog(String type, GwtOpenFileResults } }); + fileInputElem.addEventListener("cancel", function(event) { + document.body.removeChild(fileInputElem); + + console.log('Open file dialog was cancelled.'); + + // No file was selected, so nothing more to do. + resultsHandler.@com.agifans.agile.gwt.GwtOpenFileResultsHandler::onFileResultsReady([Lcom/agifans/agile/gwt/GwtOpenFileResult;)([]); + }); + // Trigger the display of the open file dialog. fileInputElem.click();