diff --git a/src/CustomEvents.hpp b/src/CustomEvents.hpp index edcf83c..48010fd 100644 --- a/src/CustomEvents.hpp +++ b/src/CustomEvents.hpp @@ -87,7 +87,7 @@ namespace CustomEvents { std::string name; std::string buffer; std::filesystem::path filePath; - Vector2f pos; + Vector2f pos = {0.0f, 0.0f}; }; struct RefreshTextBoxInputEvent { diff --git a/src/DrawingProgram/DrawingProgram.cpp b/src/DrawingProgram/DrawingProgram.cpp index 3591100..d13f7eb 100644 --- a/src/DrawingProgram/DrawingProgram.cpp +++ b/src/DrawingProgram/DrawingProgram.cpp @@ -712,7 +712,11 @@ void DrawingProgram::update_downloading_dropped_files() { } void DrawingProgram::input_add_file_to_canvas_callback(const CustomEvents::AddFileToCanvasEvent& addFile) { - add_file_to_canvas_by_path(addFile.filePath, addFile.pos); + if(addFile.type == CustomEvents::AddFileToCanvasEvent::Type::PATH) + add_file_to_canvas_by_path(addFile.filePath, addFile.pos); + else + add_file_to_canvas_by_data(addFile.name, addFile.buffer, addFile.pos); + } void DrawingProgram::add_file_to_canvas_by_path(const std::filesystem::path& filePath, Vector2f dropPos) { diff --git a/src/Toolbar.cpp b/src/Toolbar.cpp index a662516..2fb202f 100644 --- a/src/Toolbar.cpp +++ b/src/Toolbar.cpp @@ -537,10 +537,12 @@ void Toolbar::top_toolbar() { #ifdef __EMSCRIPTEN__ emscripten_browser_file::upload("*", [](std::string const& fileName, std::string const& mimeType, std::string_view buffer, void* callbackData) { if(!buffer.empty()) { + MainProgram* m = static_cast(callbackData); CustomEvents::emit_event({ .type = CustomEvents::AddFileToCanvasEvent::Type::BUFFER, .name = fileName, - .buffer = std::string(buffer) + .buffer = std::string(buffer), + .pos = m->window.size.cast() / 2.0f }); } }, &main);