Skip to content

Commit 13c962a

Browse files
authored
Merge pull request #12605 from meeseeksmachine/auto-backport-of-pr-12603-on-v3.0.x
Backport PR #12603 on branch v3.0.x (FIX: don't import macosx to check if eventloop running)
2 parents 1b0d3aa + 09e8df9 commit 13c962a

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
@@ -48,12 +48,8 @@ def _get_running_interactive_framework():
4848
if frame.f_code == tkinter.mainloop.__code__:
4949
return "tk"
5050
frame = frame.f_back
51-
try:
52-
from matplotlib.backends import _macosx
53-
except ImportError:
54-
pass
55-
else:
56-
if _macosx.event_loop_is_running():
51+
if 'matplotlib.backends._macosx' in sys.modules:
52+
if sys.modules["matplotlib.backends._macosx"].event_loop_is_running():
5753
return "macosx"
5854
if sys.platform.startswith("linux") and not os.environ.get("DISPLAY"):
5955
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