9
9
10
10
#import " RCTUtils.h"
11
11
12
- #if !TARGET_OS_OSX // [macOS]
13
12
RCTDimensions RCTGetDimensions (CGFloat fontScale)
14
- #else // [macOS
15
- RCTDimensions RCTGetDimensions (RCTPlatformView *rootView)
16
- #endif // macOS]
17
13
{
18
14
#if !TARGET_OS_OSX // [macOS]
19
15
UIScreen *mainScreen = UIScreen.mainScreen ;
@@ -24,20 +20,11 @@ RCTDimensions RCTGetDimensions(RCTPlatformView *rootView)
24
20
// We fallback to screen size if a key window is not found.
25
21
CGSize windowSize = mainWindow ? mainWindow.bounds .size : screenSize;
26
22
#else // [macOS
27
- NSWindow *window = nil ;
28
- NSSize windowSize;
29
- NSSize screenSize;
30
- if (rootView != nil ) {
31
- window = [rootView window ];
32
- windowSize = [window frame ].size ;
33
- } else {
34
- // We don't have a root view so fall back to the app's key window
35
- window = [NSApp keyWindow ];
36
- windowSize = [window frame ].size ;
37
- }
38
- screenSize = [[window screen ] frame ].size ;
39
- #endif
40
-
23
+ RCTUIWindow *window = RCTKeyWindow ();
24
+ NSSize windowSize = window ? [window frame ].size : CGSizeMake (0 , 0 );
25
+ NSSize screenSize = window ? [[window screen ] frame ].size : CGSizeMake (0 , 0 );
26
+ CGFloat scale = window ? [[window screen ] backingScaleFactor ] : 1.0 ; // Default scale to 1.0 if window is nil
27
+ #endif // macOS
41
28
RCTDimensions result;
42
29
#if !TARGET_OS_OSX // [macOS]
43
30
typeof (result.screen ) dimsScreen = {
@@ -48,13 +35,13 @@ RCTDimensions RCTGetDimensions(RCTPlatformView *rootView)
48
35
typeof (result.screen ) dimsScreen = {
49
36
.width = screenSize.width ,
50
37
.height = screenSize.height ,
51
- .scale = [[window screen ] backingScaleFactor ] ,
52
- .fontScale = 1 };
38
+ .scale = scale ,
39
+ .fontScale = fontScale };
53
40
typeof (result.window ) dimsWindow = {
54
41
.width = windowSize.width ,
55
42
.height = windowSize.height ,
56
- .scale = [[window screen ] backingScaleFactor ],
57
- .fontScale = 1 };
43
+ .scale = scale,
44
+ .fontScale = fontScale };
58
45
#endif // macOS]
59
46
result.screen = dimsScreen;
60
47
result.window = dimsWindow;
0 commit comments