From 0406ec3caf4d5518063e26cc220c995914f4c4ab Mon Sep 17 00:00:00 2001 From: Yousef Khadadeh Date: Sat, 7 Mar 2026 20:15:20 +0300 Subject: [PATCH] Emscripten version compiles --- CMakeLists.txt | 2 +- src/DrawingProgram/Tools/ScreenshotTool.cpp | 6 +++--- src/InputManager.cpp | 10 ++++++---- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f80c686..0242a46 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -203,7 +203,7 @@ else() add_executable(main ${sources}) endif() -if((NOT ANDROID) AND (NOT EMSCRIPTEN)) +if(NOT ANDROID) set_target_properties(main PROPERTIES OUTPUT_NAME "infinipaint") endif() diff --git a/src/DrawingProgram/Tools/ScreenshotTool.cpp b/src/DrawingProgram/Tools/ScreenshotTool.cpp index f45bbf1..5bb7041 100644 --- a/src/DrawingProgram/Tools/ScreenshotTool.cpp +++ b/src/DrawingProgram/Tools/ScreenshotTool.cpp @@ -81,7 +81,7 @@ void ScreenshotTool::gui_toolbox() { if(t.gui.text_button_wide("Take Screenshot", "Take Screenshot")) { controls.selectionMode = ScreenshotControls::SelectionMode::NO_SELECTION; #ifdef __EMSCRIPTEN__ - take_screenshot("a" + controls.typeSelections[screenshotConfig.selectedType]); + take_screenshot("a" + controls.typeSelections[screenshotConfig.selectedType], screenshotConfig.selectedType); #else // We can't actually use the extension from the callback, so we have to set the extension of choice beforehand Toolbar::ExtensionFilter setExtensionFilter; @@ -343,8 +343,8 @@ void ScreenshotTool::take_screenshot(const std::filesystem::path& filePath, Scre std::string mimeTypeArray[] = {"image/jpeg", "image/png", "image/webp"}; auto skData = out.detachAsData(); emscripten_browser_file::download( - "screenshot" + controls.typeSelections[extType], - mimeTypeArray[extType], + "screenshot" + controls.typeSelections[screenshotType], + mimeTypeArray[screenshotType], std::string_view((const char*)skData->bytes(), skData->size()) ); } diff --git a/src/InputManager.cpp b/src/InputManager.cpp index a9f999a..bebd330 100644 --- a/src/InputManager.cpp +++ b/src/InputManager.cpp @@ -186,10 +186,16 @@ void InputManager::Text::update_accepting_input(SDL_Window* window) { SDL_SetTextInputArea(window, &r, 0); } SDL_StartTextInputWithProperties(window, propIDVal); + #ifdef __EMSCRIPTEN__ + isAcceptingInputEmscripten = 1; + #endif } else { SDL_StopTextInput(window); SDL_SetTextInputArea(window, nullptr, 0); + #ifdef __EMSCRIPTEN__ + isAcceptingInputEmscripten = 0; + #endif } } @@ -1192,8 +1198,4 @@ void InputManager::frame_reset(const Vector2i& windowSize) { toggleFullscreen = false; hideCursor = false; - -#ifdef __EMSCRIPTEN__ - isAcceptingInputEmscripten = text.acceptingInput ? 1 : 0; -#endif }