Skip to content

Commit d85811d

Browse files
authored
Merge pull request #12603 from jklymak/fix-dont-import-macosx
FIX: don't import macosx to check if eventloop running
2 parents 0b9a3e7 + bc7059e commit d85811d

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

lib/matplotlib/backends/__init__.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,8 @@ def _get_running_interactive_framework():
4747
if frame.f_code == tkinter.mainloop.__code__:
4848
return "tk"
4949
frame = frame.f_back
50-
try:
51-
from matplotlib.backends import _macosx
52-
except ImportError:
53-
pass
54-
else:
55-
if _macosx.event_loop_is_running():
50+
if 'matplotlib.backends._macosx' in sys.modules:
51+
if sys.modules["matplotlib.backends._macosx"].event_loop_is_running():
5652
return "macosx"
5753
if sys.platform.startswith("linux") and not os.environ.get("DISPLAY"):
5854
return "headless"

src/_macosx.m

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2580,9 +2580,21 @@ static bool verify_framework(void)
25802580
ProcessSerialNumber psn;
25812581
/* These methods are deprecated, but they don't require the app to
25822582
have started */
2583+
#ifdef COMPILING_FOR_10_6
2584+
NSApp = [NSApplication sharedApplication];
2585+
NSApplicationActivationPolicy activationPolicy = [NSApp activationPolicy];
2586+
switch (activationPolicy) {
2587+
case NSApplicationActivationPolicyRegular:
2588+
case NSApplicationActivationPolicyAccessory:
2589+
return true;
2590+
case NSApplicationActivationPolicyProhibited:
2591+
break;
2592+
}
2593+
#else
25832594
if (CGMainDisplayID()!=0
25842595
&& GetCurrentProcess(&psn)==noErr
25852596
&& SetFrontProcess(&psn)==noErr) return true;
2597+
#endif
25862598
PyErr_SetString(PyExc_ImportError,
25872599
"Python is not installed as a framework. The Mac OS X backend will "
25882600
"not be able to function correctly if Python is not installed as a "

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy