13
13
14
14
/* Proper way to check for the OS X version we are compiling for, from
15
15
http://developer.apple.com/documentation/DeveloperTools/Conceptual/cross_development */
16
- #if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
17
- #define COMPILING_FOR_10_5
18
- #endif
19
16
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1060
20
17
#define COMPILING_FOR_10_6
21
18
#endif
26
23
#define COMPILING_FOR_10_10
27
24
#endif
28
25
29
- /* Use Atsui for Mac OS X 10.4, CoreText for Mac OS X 10.5 */
30
- #ifndef COMPILING_FOR_10_5
31
- static int ngc = 0 ; /* The number of graphics contexts in use */
32
-
33
- #include < Carbon/Carbon.h>
34
-
35
- #endif
36
26
37
27
/* CGFloat was defined in Mac OS X 10.5 */
38
28
#ifndef CGFLOAT_DEFINED
44
34
#define STOP_EVENT_LOOP 2
45
35
#define WINDOW_CLOSING 3
46
36
37
+
38
+ /* Keep track of number of windows present
39
+ Needed to know when to stop the NSApp */
40
+ static long FigureWindowCount = 0 ;
41
+
47
42
/* -------------------------- Helper function ---------------------------- */
48
43
49
44
static void
@@ -672,6 +667,7 @@ static CGFloat _get_device_scale(CGContextRef cr)
672
667
return NULL ;
673
668
}
674
669
self->window = window;
670
+ ++FigureWindowCount;
675
671
return (PyObject*)self;
676
672
}
677
673
@@ -2022,8 +2018,8 @@ - (BOOL)closeButtonPressed
2022
2018
- (void )close
2023
2019
{
2024
2020
[super close ];
2025
- NSArray *windowsArray = [ NSApp windows ] ;
2026
- if ([windowsArray count ]== 0 ) [NSApp stop: self ];
2021
+ --FigureWindowCount ;
2022
+ if (!FigureWindowCount ) [NSApp stop: self ];
2027
2023
/* This is needed for show(), which should exit from [NSApp run]
2028
2024
* after all windows are closed.
2029
2025
*/
0 commit comments