@@ -794,26 +794,14 @@ EMSCRIPTEN_KEEPALIVE void Emscripten_HandlePointerGeneric(SDL_WindowData *window
794
794
static void Emscripten_set_pointer_event_callbacks (SDL_WindowData * data )
795
795
{
796
796
MAIN_THREAD_EM_ASM ({
797
- var id = UTF8ToString ($1 );
798
- var target = document .querySelector (id );
797
+ var target = document .querySelector (UTF8ToString ($1 ));
799
798
if (target ) {
800
799
var data = $0 ;
801
800
802
- if (! Module ['SDL3' ]) {
801
+ if (typeof ( Module ['SDL3' ]) == = 'undefined' ) {
803
802
Module ['SDL3' ] = {};
804
803
}
805
-
806
804
var SDL3 = Module ['SDL3' ];
807
- if (!SDL3 ['window_data' ]) {
808
- SDL3 ['window_data' ] = {};
809
- }
810
-
811
- var window_datas = SDL3 ['window_data' ];
812
- if (!window_datas [id ]) {
813
- window_datas [id ] = {};
814
- }
815
-
816
- var window_data = window_datas [id ];
817
805
818
806
var makePointerEventCStruct = function (event ) {
819
807
var ptr = 0 ;
@@ -839,45 +827,42 @@ static void Emscripten_set_pointer_event_callbacks(SDL_WindowData *data)
839
827
return ptr ;
840
828
};
841
829
842
- window_data .eventHandlerPointerEnter = function (event ) {
830
+ SDL3 .eventHandlerPointerEnter = function (event ) {
843
831
var d = makePointerEventCStruct (event ); if (d != 0 ) { _Emscripten_HandlePointerEnter (data , d ); _SDL_free (d ); }
844
832
};
845
- target .addEventListener ("pointerenter" , window_data .eventHandlerPointerEnter );
833
+ target .addEventListener ("pointerenter" , SDL3 .eventHandlerPointerEnter );
846
834
847
- window_data .eventHandlerPointerLeave = function (event ) {
835
+ SDL3 .eventHandlerPointerLeave = function (event ) {
848
836
var d = makePointerEventCStruct (event ); if (d != 0 ) { _Emscripten_HandlePointerLeave (data , d ); _SDL_free (d ); }
849
837
};
850
- target .addEventListener ("pointerleave" , window_data .eventHandlerPointerLeave );
851
- target .addEventListener ("pointercancel" , window_data .eventHandlerPointerLeave ); // catch this, just in case.
838
+ target .addEventListener ("pointerleave" , SDL3 .eventHandlerPointerLeave );
839
+ target .addEventListener ("pointercancel" , SDL3 .eventHandlerPointerLeave ); // catch this, just in case.
852
840
853
- window_data .eventHandlerPointerGeneric = function (event ) {
841
+ SDL3 .eventHandlerPointerGeneric = function (event ) {
854
842
var d = makePointerEventCStruct (event ); if (d != 0 ) { _Emscripten_HandlePointerGeneric (data , d ); _SDL_free (d ); }
855
843
};
856
- target .addEventListener ("pointerdown" , window_data .eventHandlerPointerGeneric );
857
- target .addEventListener ("pointerup" , window_data .eventHandlerPointerGeneric );
858
- target .addEventListener ("pointermove" , window_data .eventHandlerPointerGeneric );
844
+ target .addEventListener ("pointerdown" , SDL3 .eventHandlerPointerGeneric );
845
+ target .addEventListener ("pointerup" , SDL3 .eventHandlerPointerGeneric );
846
+ target .addEventListener ("pointermove" , SDL3 .eventHandlerPointerGeneric );
859
847
}
860
848
}, data , data -> canvas_id , sizeof (Emscripten_PointerEvent ));
861
849
}
862
850
863
851
static void Emscripten_unset_pointer_event_callbacks (SDL_WindowData * data )
864
852
{
865
853
MAIN_THREAD_EM_ASM ({
866
- var id = UTF8ToString ($0 );
867
- var target = document .querySelector (id );
854
+ var target = document .querySelector (UTF8ToString ($0 ));
868
855
if (target ) {
869
856
var SDL3 = Module ['SDL3' ];
870
- var window_datas = SDL3 ['window_data' ];
871
- var window_data = window_datas [id ];
872
- target .removeEventListener ("pointerenter" , window_data .eventHandlerPointerEnter );
873
- target .removeEventListener ("pointerleave" , window_data .eventHandlerPointerLeave );
874
- target .removeEventListener ("pointercancel" , window_data .eventHandlerPointerLeave );
875
- target .removeEventListener ("pointerdown" , window_data .eventHandlerPointerGeneric );
876
- target .removeEventListener ("pointerup" , window_data .eventHandlerPointerGeneric );
877
- target .removeEventListener ("pointermove" , window_data .eventHandlerPointerGeneric );
878
- window_data .eventHandlerPointerEnter = undefined ;
879
- window_data .eventHandlerPointerLeave = undefined ;
880
- window_data .eventHandlerPointerGeneric = undefined ;
857
+ target .removeEventListener ("pointerenter" , SDL3 .eventHandlerPointerEnter );
858
+ target .removeEventListener ("pointerleave" , SDL3 .eventHandlerPointerLeave );
859
+ target .removeEventListener ("pointercancel" , SDL3 .eventHandlerPointerLeave );
860
+ target .removeEventListener ("pointerdown" , SDL3 .eventHandlerPointerGeneric );
861
+ target .removeEventListener ("pointerup" , SDL3 .eventHandlerPointerGeneric );
862
+ target .removeEventListener ("pointermove" , SDL3 .eventHandlerPointerGeneric );
863
+ SDL3 .eventHandlerPointerEnter = undefined ;
864
+ SDL3 .eventHandlerPointerLeave = undefined ;
865
+ SDL3 .eventHandlerPointerGeneric = undefined ;
881
866
}
882
867
}, data -> canvas_id );
883
868
}
@@ -914,26 +899,14 @@ EM_JS_DEPS(dragndrop, "$writeArrayToMemory");
914
899
static void Emscripten_set_drag_event_callbacks (SDL_WindowData * data )
915
900
{
916
901
MAIN_THREAD_EM_ASM ({
917
- var id = UTF8ToString ($1 );
918
- var target = document .querySelector (id );
902
+ var target = document .querySelector (UTF8ToString ($1 ));
919
903
if (target ) {
920
904
var data = $0 ;
921
905
922
- if (! Module ['SDL3' ]) {
906
+ if (typeof ( Module ['SDL3' ]) == = 'undefined' ) {
923
907
Module ['SDL3' ] = {};
924
908
}
925
-
926
909
var SDL3 = Module ['SDL3' ];
927
- if (!SDL3 ['window_data' ]) {
928
- SDL3 ['window_data' ] = {};
929
- }
930
-
931
- var window_datas = SDL3 ['window_data' ];
932
- if (!window_datas [id ]) {
933
- window_datas [id ] = {};
934
- }
935
-
936
- var window_data = window_datas [id ];
937
910
938
911
var makeDropEventCStruct = function (event ) {
939
912
var ptr = 0 ;
@@ -947,23 +920,15 @@ static void Emscripten_set_drag_event_callbacks(SDL_WindowData *data)
947
920
return ptr ;
948
921
};
949
922
950
- window_data .eventHandlerDropDragover = function (event ) {
923
+ SDL3 .eventHandlerDropDragover = function (event ) {
951
924
event .preventDefault ();
952
925
var d = makeDropEventCStruct (event ); if (d != 0 ) { _Emscripten_SendDragEvent (data , d ); _SDL_free (d ); }
953
926
};
954
- target .addEventListener ("dragover" , window_data .eventHandlerDropDragover );
955
-
956
- window_data .drop_count = 0 ;
957
- try
958
- {
959
- FS .mkdir ("/tmp/filedrop" )
960
- }
961
- catch (e )
962
- {
963
- // Throws if the directory already exists
964
- }
927
+ target .addEventListener ("dragover" , SDL3 .eventHandlerDropDragover );
965
928
966
- window_data .eventHandlerDropDrop = function (event ) {
929
+ SDL3 .drop_count = 0 ;
930
+ FS .mkdir ("/tmp/filedrop" );
931
+ SDL3 .eventHandlerDropDrop = function (event ) {
967
932
event .preventDefault ();
968
933
if (event .dataTransfer .types .includes ("text/plain" )) {
969
934
let plain_text = stringToNewUTF8 (event .dataTransfer .getData ("text/plain" ));
@@ -975,8 +940,8 @@ static void Emscripten_set_drag_event_callbacks(SDL_WindowData *data)
975
940
const file_reader = new FileReader ();
976
941
file_reader .readAsArrayBuffer (file );
977
942
file_reader .onload = function (event ) {
978
- const fs_dropdir = `/tmp /filedrop /$ {window_data .drop_count }`;
979
- window_data .drop_count += 1 ;
943
+ const fs_dropdir = `/tmp /filedrop /$ {SDL3 .drop_count }`;
944
+ SDL3 .drop_count += 1 ;
980
945
981
946
const fs_filepath = `$ {fs_dropdir }/$ {file .name }`;
982
947
const c_fs_filepath = stringToNewUTF8 (fs_filepath );
@@ -995,44 +960,29 @@ static void Emscripten_set_drag_event_callbacks(SDL_WindowData *data)
995
960
}
996
961
_Emscripten_SendDragCompleteEvent (data );
997
962
};
998
- target .addEventListener ("drop" , window_data .eventHandlerDropDrop );
963
+ target .addEventListener ("drop" , SDL3 .eventHandlerDropDrop );
999
964
1000
- window_data .eventHandlerDropDragend = function (event ) {
965
+ SDL3 .eventHandlerDropDragend = function (event ) {
1001
966
event .preventDefault ();
1002
967
_Emscripten_SendDragCompleteEvent (data );
1003
968
};
1004
- target .addEventListener ("dragend" , window_data .eventHandlerDropDragend );
1005
- target .addEventListener ("dragleave" , window_data .eventHandlerDropDragend );
969
+ target .addEventListener ("dragend" , SDL3 .eventHandlerDropDragend );
970
+ target .addEventListener ("dragleave" , SDL3 .eventHandlerDropDragend );
1006
971
}
1007
972
}, data , data -> canvas_id , sizeof (Emscripten_DropEvent ));
1008
973
}
1009
974
1010
975
static void Emscripten_unset_drag_event_callbacks (SDL_WindowData * data )
1011
976
{
1012
977
MAIN_THREAD_EM_ASM ({
1013
- var id = UTF8ToString ($0 );
1014
- var target = document .querySelector (id );
978
+ var target = document .querySelector (UTF8ToString ($0 ));
1015
979
if (target ) {
1016
980
var SDL3 = Module ['SDL3' ];
1017
- var window_datas = SDL3 ['window_data' ];
1018
- var window_data = window_datas [id ];
1019
- target .removeEventListener ("dragleave" , window_data .eventHandlerDropDragend );
1020
- target .removeEventListener ("dragend" , window_data .eventHandlerDropDragend );
1021
- target .removeEventListener ("drop" , window_data .eventHandlerDropDrop );
1022
- window_data .drop_count = undefined ;
1023
-
1024
- function safeRemoveDir (path ) {
1025
- try
1026
- {
1027
- FS .rmdir (path );
1028
- }
1029
- catch (e )
1030
- {
1031
- // Throws if directory doesn't exist
1032
- }
1033
- }
981
+ target .removeEventListener ("dragleave" , SDL3 .eventHandlerDropDragend );
982
+ target .removeEventListener ("dragend" , SDL3 .eventHandlerDropDragend );
983
+ target .removeEventListener ("drop" , SDL3 .eventHandlerDropDrop );
984
+ SDL3 .drop_count = undefined ;
1034
985
1035
- const path = "/tmp/filedrop" ;
1036
986
function recursive_remove (dirpath ) {
1037
987
FS .readdir (dirpath ).forEach ((filename ) = > {
1038
988
const p = `$ {dirpath }/$ {filename }`;
@@ -1043,14 +993,14 @@ static void Emscripten_unset_drag_event_callbacks(SDL_WindowData *data)
1043
993
recursive_remove (p );
1044
994
}
1045
995
});
1046
- safeRemoveDir (dirpath );
1047
- }(path );
1048
-
1049
- safeRemoveDir ( path );
1050
- target .removeEventListener ("dragover" , window_data .eventHandlerDropDragover );
1051
- window_data .eventHandlerDropDragover = undefined ;
1052
- window_data .eventHandlerDropDrop = undefined ;
1053
- window_data .eventHandlerDropDragend = undefined ;
996
+ FS . rmdir (dirpath );
997
+ }("/tmp/filedrop" );
998
+
999
+ FS . rmdir ( "/tmp/filedrop" );
1000
+ target .removeEventListener ("dragover" , SDL3 .eventHandlerDropDragover );
1001
+ SDL3 .eventHandlerDropDragover = undefined ;
1002
+ SDL3 .eventHandlerDropDrop = undefined ;
1003
+ SDL3 .eventHandlerDropDragend = undefined ;
1054
1004
}
1055
1005
}, data -> canvas_id );
1056
1006
}
0 commit comments