]> granicus.if.org Git - python/commitdiff
Issue #15678: Fix menu customization for IDLE started from OS X
authorNed Deily <nad@acm.org>
Fri, 17 Aug 2012 20:22:30 +0000 (13:22 -0700)
committerNed Deily <nad@acm.org>
Fri, 17 Aug 2012 20:22:30 +0000 (13:22 -0700)
command lines.  It was broken as a side effect of the changes to
pythonw.c in b79d276041a8 for #15307.  Since sys.executable no
longer includes 'Python.app' in the path name, test for a
framework build instead.  This should give the previous behavior
in nearly all cases.  Whether the previous behavior is sensible
is left as an issue for later releases.  IDLE.app behavior was
not affected as it does its own manipulation of sys.executable.

Lib/idlelib/macosxSupport.py
Misc/NEWS

index 96904429af88ab7fced679d21ec1f991e5fd407f..67069fa0f393b526855c3ee5e8b9b05c6532e060 100644 (file)
@@ -12,12 +12,22 @@ _appbundle = None
 def runningAsOSXApp():
     """
     Returns True if Python is running from within an app on OSX.
-    If so, assume that Python was built with Aqua Tcl/Tk rather than
-    X11 Tcl/Tk.
+    If so, the various OS X customizations will be triggered later (menu
+    fixup, et al).  (Originally, this test was supposed to condition
+    behavior on whether IDLE was running under Aqua Tk rather than
+    under X11 Tk but that does not work since a framework build
+    could be linked with X11.  For several releases, this test actually
+    differentiates between whether IDLE is running from a framework or
+    not.  As a future enhancement, it should be considered whether there
+    should be a difference based on framework and any needed X11 adaptions
+    should be made dependent on a new function that actually tests for X11.)
     """
     global _appbundle
     if _appbundle is None:
-        _appbundle = (sys.platform == 'darwin' and '.app' in sys.executable)
+        _appbundle = sys.platform == 'darwin'
+        if _appbundle:
+            import sysconfig
+            _appbundle = bool(sysconfig.get_config_var('PYTHONFRAMEWORK'))
     return _appbundle
 
 _carbonaquatk = None
index 7e95b665b4a3b12734766de0596890ea018f6821..49a4057d9d49278320b1197ba976c88008cad46c 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -29,6 +29,9 @@ Library
   multiprocessing on Windows without the "if __name__ == '__main__'"
   idiom.
 
+- Issue #15678: Fix IDLE menus when started from OS X command line
+  (3.3.0b2 regression).
+
 C API
 -----