[Python-checkins] cpython (merge 3.4 -> default): Merge with 3.4

terry.reedy python-checkins at python.org
Tue Jul 29 04:24:42 CEST 2014


http://hg.python.org/cpython/rev/c015e727b8f0
changeset:   91916:c015e727b8f0
parent:      91914:017d701116d5
parent:      91915:04dd26ca02f4
user:        Terry Jan Reedy <tjreedy at udel.edu>
date:        Mon Jul 28 22:24:20 2014 -0400
summary:
  Merge with 3.4

files:
  Lib/idlelib/Bindings.py     |   5 +++++
  Lib/idlelib/EditorWindow.py |   9 +++++++++
  Lib/turtledemo/__main__.py  |  16 ++++++++++++++++
  3 files changed, 30 insertions(+), 0 deletions(-)


diff --git a/Lib/idlelib/Bindings.py b/Lib/idlelib/Bindings.py
--- a/Lib/idlelib/Bindings.py
+++ b/Lib/idlelib/Bindings.py
@@ -8,6 +8,8 @@
 windows.
 
 """
+from importlib.util import find_spec
+
 from idlelib.configHandler import idleConf
 
 #   Warning: menudefs is altered in macosxSupport.overrideRootMenu()
@@ -86,4 +88,7 @@
    ]),
 ]
 
+if find_spec('turtledemo'):
+    menudefs[-1][1].append(('Turtle Demo', '<<open-turtle-demo>>'))
+
 default_keydefs = idleConf.GetCurrentKeySet()
diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py
--- a/Lib/idlelib/EditorWindow.py
+++ b/Lib/idlelib/EditorWindow.py
@@ -222,6 +222,7 @@
             text.bind("<<close-all-windows>>", self.flist.close_all_callback)
             text.bind("<<open-class-browser>>", self.open_class_browser)
             text.bind("<<open-path-browser>>", self.open_path_browser)
+            text.bind("<<open-turtle-demo>>", self.open_turtle_demo)
 
         self.set_status_bar()
         vbar['command'] = text.yview
@@ -705,6 +706,14 @@
         from idlelib import PathBrowser
         PathBrowser.PathBrowser(self.flist)
 
+    def open_turtle_demo(self, event = None):
+        import subprocess
+
+        cmd = [sys.executable,
+               '-c',
+               'from turtledemo.__main__ import main; main()']
+        p = subprocess.Popen(cmd, shell=False)
+
     def gotoline(self, lineno):
         if lineno is not None and lineno > 0:
             self.text.mark_set("insert", "%d.0" % lineno)
diff --git a/Lib/turtledemo/__main__.py b/Lib/turtledemo/__main__.py
--- a/Lib/turtledemo/__main__.py
+++ b/Lib/turtledemo/__main__.py
@@ -112,6 +112,22 @@
         root.title('Python turtle-graphics examples')
         root.wm_protocol("WM_DELETE_WINDOW", self._destroy)
 
+        if sys.platform == 'darwin':
+            import subprocess
+            # Make sure we are the currently activated OS X application
+            # so that our menu bar appears.
+            p = subprocess.Popen(
+                    [
+                        'osascript',
+                        '-e', 'tell application "System Events"',
+                        '-e', 'set frontmost of the first process whose '
+                              'unix id is {} to true'.format(os.getpid()),
+                        '-e', 'end tell',
+                    ],
+                    stderr=subprocess.DEVNULL,
+                    stdout=subprocess.DEVNULL,
+                )
+
         root.grid_rowconfigure(1, weight=1)
         root.grid_columnconfigure(0, weight=1)
         root.grid_columnconfigure(1, minsize=90, weight=1)

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list