[Python-checkins] bpo-37039: IDLE - zoomheight fixes (GH-13576)

Terry Jan Reedy webhook-mailer at python.org
Mon May 27 19:16:50 EDT 2019


https://github.com/python/cpython/commit/df9b032f47e4edaf306d95449370e565ee470018
commit: df9b032f47e4edaf306d95449370e565ee470018
branch: master
author: Terry Jan Reedy <tjreedy at udel.edu>
committer: GitHub <noreply at github.com>
date: 2019-05-27T19:16:46-04:00
summary:

bpo-37039: IDLE - zoomheight fixes (GH-13576)

Move doc entry to match menu and refactor zoom function.
A followup patch will include a blurb.

files:
M Doc/library/idle.rst
M Lib/idlelib/help.html
M Lib/idlelib/zoomheight.py

diff --git a/Doc/library/idle.rst b/Doc/library/idle.rst
index c51cf19e97bd..bd24695c7282 100644
--- a/Doc/library/idle.rst
+++ b/Doc/library/idle.rst
@@ -281,16 +281,16 @@ Configure IDLE
    menu. For more, see
    :ref:`Setting preferences <preferences>` under Help and preferences.
 
-Zoom/Restore Height
-   Toggles the window between normal size and maximum height. The initial size
-   defaults to 40 lines by 80 chars unless changed on the General tab of the
-   Configure IDLE dialog.
-
 Show/Hide Code Context (Editor Window only)
    Open a pane at the top of the edit window which shows the block context
    of the code which has scrolled above the top of the window.  See
    :ref:`Code Context <code-context>` in the Editing and Navigation section below.
 
+Zoom/Restore Height
+   Toggles the window between normal size and maximum height. The initial size
+   defaults to 40 lines by 80 chars unless changed on the General tab of the
+   Configure IDLE dialog.
+
 Window menu (Shell and Editor)
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
diff --git a/Lib/idlelib/help.html b/Lib/idlelib/help.html
index bc287d637ab7..228b3195cf92 100644
--- a/Lib/idlelib/help.html
+++ b/Lib/idlelib/help.html
@@ -313,14 +313,14 @@ <h3>Options menu (Shell and Editor)<a class="headerlink" href="#options-menu-she
 configuration dialog by selecting Preferences in the application
 menu. For more, see
 <a class="reference internal" href="#preferences"><span class="std std-ref">Setting preferences</span></a> under Help and preferences.</dd>
-<dt>Zoom/Restore Height</dt>
-<dd>Toggles the window between normal size and maximum height. The initial size
-defaults to 40 lines by 80 chars unless changed on the General tab of the
-Configure IDLE dialog.</dd>
 <dt>Show/Hide Code Context (Editor Window only)</dt>
 <dd>Open a pane at the top of the edit window which shows the block context
 of the code which has scrolled above the top of the window.  See
 <a class="reference internal" href="#code-context"><span class="std std-ref">Code Context</span></a> in the Editing and Navigation section below.</dd>
+<dt>Zoom/Restore Height</dt>
+<dd>Toggles the window between normal size and maximum height. The initial size
+defaults to 40 lines by 80 chars unless changed on the General tab of the
+Configure IDLE dialog.</dd>
 </dl>
 </div>
 <div class="section" id="window-menu-shell-and-editor">
@@ -943,7 +943,7 @@ <h3>Navigation</h3>
 <br />
     <br />
 
-    Last updated on May 19, 2019.
+    Last updated on May 25, 2019.
     <a href="https://docs.python.org/3/bugs.html">Found a bug</a>?
     <br />
 
diff --git a/Lib/idlelib/zoomheight.py b/Lib/idlelib/zoomheight.py
index 35e285f0ba41..523f5d51e02f 100644
--- a/Lib/idlelib/zoomheight.py
+++ b/Lib/idlelib/zoomheight.py
@@ -28,26 +28,14 @@ def zoom_height(top):
         return
     width, height, x, y = map(int, m.groups())
     newheight = top.winfo_screenheight()
-    if sys.platform == 'win32':
-        newy = 0
-        newheight = newheight - 72
-
-    elif macosx.isAquaTk():
-        # The '88' below is a magic number that avoids placing the bottom
-        # of the window below the panel on my machine. I don't know how
-        # to calculate the correct value for this with tkinter.
-        newy = 22
-        newheight = newheight - newy - 88
-
-    else:
-        #newy = 24
-        newy = 0
-        #newheight = newheight - 96
-        newheight = newheight - 88
-    if height >= newheight:
-        newgeom = ""
-    else:
-        newgeom = "%dx%d+%d+%d" % (width, newheight, x, newy)
+
+    # The constants below for Windows and Mac Aqua are visually determined
+    # to avoid taskbar or menubar and app icons.
+    newy, bot_y = ((0, 72) if sys.platform == 'win32' else
+                   (22, 88) if macosx.isAquaTk() else
+                   (0, 88) ) # Guess for anything else.
+    newheight = newheight - newy - bot_y
+    newgeom = '' if height >= newheight else f"{width}x{newheight}+{x}+{newy}"
     top.wm_geometry(newgeom)
     return newgeom != ""
 



More information about the Python-checkins mailing list