Browse Source

EmscriptenApplication: fix handling of magic target constants

pull/480/head
Pablo Escobar 6 years ago
parent
commit
05f5be96db
  1. 22
      src/Magnum/Platform/EmscriptenApplication.cpp

22
src/Magnum/Platform/EmscriptenApplication.cpp

@ -524,7 +524,7 @@ void EmscriptenApplication::setupCallbacks(bool resizable) {
1.38.27 depending on -s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=1
but we don't want to force this flag on the users so the behavior
handles both. */
char* keyboardListeningElement = reinterpret_cast<char*>(EM_ASM_INT({
int keyboardListeningElement = EM_ASM_INT({
var element = Module['keyboardListeningElement'] || document;
if(element === document) return 1;
@ -533,21 +533,21 @@ void EmscriptenApplication::setupCallbacks(bool resizable) {
return allocate(intArrayFromString(element.id), 'i8', ALLOC_NORMAL);
return 0;
}));
});
#pragma GCC diagnostic pop
std::string keyboardListeningElementString;
const char* keyboardListeningTarget = keyboardListeningElement;
if(_deprecatedTargetBehavior && keyboardListeningElement == reinterpret_cast<char*>(1)) {
std::string keyboardListeningTargetString;
const char* keyboardListeningTarget = reinterpret_cast<char*>(keyboardListeningElement);
if(_deprecatedTargetBehavior && keyboardListeningElement == 1) {
keyboardListeningTarget = "#document";
} else if(_deprecatedTargetBehavior && keyboardListeningElement == reinterpret_cast<char*>(2)) {
} else if(_deprecatedTargetBehavior && keyboardListeningElement == 2) {
keyboardListeningTarget = "#window";
} else if(keyboardListeningElement) {
} else if(keyboardListeningElement > 2) {
if(!_deprecatedTargetBehavior)
keyboardListeningElementString = "#";
keyboardListeningElementString += keyboardListeningElement;
std::free(keyboardListeningElement);
keyboardListeningTarget = keyboardListeningElementString.data();
keyboardListeningTargetString = "#";
keyboardListeningTargetString += keyboardListeningTarget;
std::free(reinterpret_cast<void*>(keyboardListeningElement));
keyboardListeningTarget = keyboardListeningTargetString.data();
}
/* Happens only if keyboardListeningElement was set, but did not have an

Loading…
Cancel
Save