This repository was archived by the owner on Aug 31, 2021. It is now read-only.
File tree 2 files changed +39
-1
lines changed
Filter options
2 files changed +39
-1
lines changed
Original file line number Diff line number Diff line change @@ -130,6 +130,10 @@ mergeInto(LibraryManager.library, {
130
130
tInput . addEventListener ( type , handler ) ;
131
131
} ) ;
132
132
133
+ // Add listener for changes to device pixel ratio
134
+ var matchQuery = `(resolution: ${ window . devicePixelRatio } dppx)` ;
135
+ window . matchMedia ( matchQuery ) . addListener ( LiveCodeEvents . _handleDevicePixelRatioChanged ) ;
136
+
133
137
LiveCodeEvents . _initialised = true ;
134
138
} ,
135
139
@@ -892,6 +896,16 @@ mergeInto(LibraryManager.library, {
892
896
// UI events
893
897
// ----------------------------------------------------------------
894
898
899
+ _handleDevicePixelRatioChanged : function ( ) {
900
+ LiveCodeAsync . delay ( function ( ) {
901
+ Module . ccall ( 'MCEmscriptenHandleDevicePixelRatioChanged' ,
902
+ 'number' , /* bool */
903
+ [ ] ,
904
+ [ ] )
905
+ } ) ;
906
+ LiveCodeAsync . resume ( ) ;
907
+ } ,
908
+
895
909
// prevent context menu popup on right-click
896
910
_handleContextMenu : function ( e ) {
897
911
e . preventDefault ( )
Original file line number Diff line number Diff line change @@ -16,12 +16,22 @@ for more details.
16
16
You should have received a copy of the GNU General Public License
17
17
along with LiveCode. If not see <http://www.gnu.org/licenses/>. */
18
18
19
+ #include " globdefs.h"
20
+ #include " filedefs.h"
21
+ #include " osspec.h"
22
+ #include " typedefs.h"
23
+ #include " parsedef.h"
24
+ #include " objdefs.h"
25
+
26
+ #include " globals.h"
27
+
19
28
#include " em-util.h"
20
29
21
30
#include " sysdefs.h"
22
31
23
32
#include " graphics.h"
24
33
#include " resolution.h"
34
+ #include " stacklst.h"
25
35
26
36
#include < emscripten.h>
27
37
@@ -70,5 +80,19 @@ MCResPlatformGetUIDeviceScale()
70
80
void
71
81
MCResPlatformHandleScaleChange ()
72
82
{
73
- MCEmscriptenNotImplemented ();
83
+ // Global use-pixel-scaling value has been updated, so now we just need to reopen any open stack windows
84
+ MCstacks->reopenallstackwindows ();
85
+ }
86
+
87
+ extern " C" MC_DLLEXPORT_DEF bool
88
+ MCEmscriptenHandleDevicePixelRatioChanged ()
89
+ {
90
+ MCGFloat t_scale = emscripten_get_device_pixel_ratio ();
91
+ if (t_scale != s_emscripten_device_scale)
92
+ {
93
+ s_emscripten_device_scale = t_scale;
94
+ MCResPlatformHandleScaleChange ();
95
+ }
96
+
97
+ return true ;
74
98
}
You can’t perform that action at this time.
0 commit comments