diff --git a/src/Magnum/Platform/Test/CMakeLists.txt b/src/Magnum/Platform/Test/CMakeLists.txt
index 54e8de364..ce365eb00 100644
--- a/src/Magnum/Platform/Test/CMakeLists.txt
+++ b/src/Magnum/Platform/Test/CMakeLists.txt
@@ -43,6 +43,8 @@ if(WITH_EMSCRIPTENAPPLICATION)
add_executable(PlatformEmscriptenApplicationTest EmscriptenApplicationTest.cpp)
target_link_libraries(PlatformEmscriptenApplicationTest PRIVATE MagnumEmscriptenApplication MagnumGL)
set_target_properties(PlatformEmscriptenApplicationTest PROPERTIES FOLDER "Magnum/Platform/Test")
+ # Test that the canvas and keylistener can be found with both the old and the new Emscripten target behaviors
+ target_link_libraries(PlatformEmscriptenApplicationTest PRIVATE "-s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=0")
add_custom_command(TARGET PlatformEmscriptenApplicationTest POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${CMAKE_CURRENT_SOURCE_DIR}/../WebApplication.css
@@ -52,35 +54,21 @@ if(WITH_EMSCRIPTENAPPLICATION)
${CMAKE_CURRENT_SOURCE_DIR}/EmscriptenApplicationTest.html
$/PlatformEmscriptenApplicationTest.html)
- add_executable(PlatformEmscriptenApplicationCustomCanvasTest EmscriptenApplicationTest.cpp)
- target_link_libraries(PlatformEmscriptenApplicationCustomCanvasTest PRIVATE MagnumEmscriptenApplication MagnumGL)
- set_target_properties(PlatformEmscriptenApplicationCustomCanvasTest PROPERTIES FOLDER "Magnum/Platform/Test")
- target_link_libraries(PlatformEmscriptenApplicationCustomCanvasTest PRIVATE "-s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=0")
- add_custom_command(TARGET PlatformEmscriptenApplicationCustomCanvasTest POST_BUILD
+ add_executable(PlatformMultipleEmscriptenApplicationTest EmscriptenApplicationTest.cpp)
+ target_link_libraries(PlatformMultipleEmscriptenApplicationTest PRIVATE MagnumEmscriptenApplication MagnumGL)
+ set_target_properties(PlatformMultipleEmscriptenApplicationTest PROPERTIES FOLDER "Magnum/Platform/Test")
+ target_compile_definitions(PlatformMultipleEmscriptenApplicationTest PRIVATE CUSTOM_CLEAR_COLOR=0.2,0,0.2,1)
+ target_link_libraries(PlatformMultipleEmscriptenApplicationTest PRIVATE "-s MODULARIZE -s EXPORT_NAME=createModule")
+ target_link_libraries(PlatformMultipleEmscriptenApplicationTest PRIVATE "-s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=1")
+ target_link_libraries(PlatformMultipleEmscriptenApplicationTest PRIVATE "--pre-js ${CMAKE_CURRENT_SOURCE_DIR}/../EmscriptenApplication.js")
+ target_link_libraries(PlatformMultipleEmscriptenApplicationTest PRIVATE "--pre-js ${CMAKE_CURRENT_SOURCE_DIR}/MultipleEmscriptenApplicationTestPre.js")
+ add_custom_command(TARGET PlatformMultipleEmscriptenApplicationTest POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${CMAKE_CURRENT_SOURCE_DIR}/../WebApplication.css
- ${CMAKE_CURRENT_SOURCE_DIR}/../EmscriptenApplication.js
- ${CMAKE_CURRENT_SOURCE_DIR}/PatchWebApplicationCssCustomCanvas.cmake
- $
- COMMAND ${CMAKE_COMMAND} -P PatchWebApplicationCssCustomCanvas.cmake
+ $
COMMAND ${CMAKE_COMMAND} -E copy_if_different
- ${CMAKE_CURRENT_SOURCE_DIR}/EmscriptenApplicationCustomCanvasTest.html
- $/PlatformEmscriptenApplicationCustomCanvasTest.html
- WORKING_DIRECTORY $)
-
- add_executable(PlatformMultipleEmscriptenApplicationTest EmscriptenApplicationTest.cpp)
- target_link_libraries(PlatformMultipleEmscriptenApplicationTest PRIVATE MagnumEmscriptenApplication MagnumGL)
- set_target_properties(PlatformMultipleEmscriptenApplicationTest PROPERTIES FOLDER "Magnum/Platform/Test")
- target_compile_definitions(PlatformMultipleEmscriptenApplicationTest PRIVATE CUSTOM_CLEAR_COLOR=1,0,1,1)
- target_link_libraries(PlatformMultipleEmscriptenApplicationTest PRIVATE "-s MODULARIZE -s EXPORT_NAME=createModule")
- target_link_libraries(PlatformMultipleEmscriptenApplicationTest PRIVATE "-s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=1")
- add_custom_command(TARGET PlatformMultipleEmscriptenApplicationTest POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy_if_different
- ${CMAKE_CURRENT_SOURCE_DIR}/../EmscriptenApplication.js
- $
- COMMAND ${CMAKE_COMMAND} -E copy_if_different
- ${CMAKE_CURRENT_SOURCE_DIR}/MultipleEmscriptenApplicationTest.html
- $/PlatformMultipleEmscriptenApplicationTest.html)
+ ${CMAKE_CURRENT_SOURCE_DIR}/MultipleEmscriptenApplicationTest.html
+ $/PlatformMultipleEmscriptenApplicationTest.html)
endif()
if(WITH_GLFWAPPLICATION)
diff --git a/src/Magnum/Platform/Test/EmscriptenApplicationCustomCanvasTest.html b/src/Magnum/Platform/Test/EmscriptenApplicationCustomCanvasTest.html
deleted file mode 100644
index 020475b66..000000000
--- a/src/Magnum/Platform/Test/EmscriptenApplicationCustomCanvasTest.html
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
- Magnum EmscriptenApplication Custom Canvas Test
-
-
-
-
- Magnum EmscriptenApplication Custom Canvas Test
-
-
-
-
Initialization...
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Magnum/Platform/Test/EmscriptenApplicationTest.html b/src/Magnum/Platform/Test/EmscriptenApplicationTest.html
index 5acdbfe99..78b3b7b47 100644
--- a/src/Magnum/Platform/Test/EmscriptenApplicationTest.html
+++ b/src/Magnum/Platform/Test/EmscriptenApplicationTest.html
@@ -14,14 +14,14 @@
Initialization...
-
+
Magnum Multiple EmscriptenApplication Test
-
-
-
-
-
Initialization...
-
-
+
+
+
+
Initialization...
+
+
+
+
+
+
+
Initialization...
+
-
+
+
diff --git a/src/Magnum/Platform/Test/MultipleEmscriptenApplicationTest.html b/src/Magnum/Platform/Test/MultipleEmscriptenApplicationTest.html
index 0a599bce9..d226ab9ae 100644
--- a/src/Magnum/Platform/Test/MultipleEmscriptenApplicationTest.html
+++ b/src/Magnum/Platform/Test/MultipleEmscriptenApplicationTest.html
@@ -3,46 +3,52 @@
Magnum Multiple EmscriptenApplication Test
+
diff --git a/src/Magnum/Platform/Test/MultipleEmscriptenApplicationTestPre.js b/src/Magnum/Platform/Test/MultipleEmscriptenApplicationTestPre.js
new file mode 100644
index 000000000..bed5b4b22
--- /dev/null
+++ b/src/Magnum/Platform/Test/MultipleEmscriptenApplicationTestPre.js
@@ -0,0 +1,8 @@
+Module.canvas = document.getElementById('canvas1');
+Module.status = document.getElementById('status1');
+Module.statusDescription = document.getElementById('status-description1');
+
+Module.keyboardListeningElement = Module.canvas;
+Module.canvas.addEventListener('mousedown', function(event) {
+ event.target.focus();
+});
diff --git a/src/Magnum/Platform/Test/PatchWebApplicationCssCustomCanvas.cmake b/src/Magnum/Platform/Test/PatchWebApplicationCssCustomCanvas.cmake
deleted file mode 100644
index be47740c4..000000000
--- a/src/Magnum/Platform/Test/PatchWebApplicationCssCustomCanvas.cmake
+++ /dev/null
@@ -1,3 +0,0 @@
-file(READ ${CMAKE_CURRENT_LIST_DIR}/WebApplication.css CONTENT)
-string(REPLACE "#canvas" "#canvas2" CONTENT "${CONTENT}")
-file(WRITE ${CMAKE_CURRENT_LIST_DIR}/WebApplicationCustomCanvas.css "${CONTENT}")