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

Move doc entry to match menu and refactor zoom function.
A followup patch will include a blurb.
diff --git a/Lib/idlelib/zoomheight.py b/Lib/idlelib/zoomheight.py
index 35e285f..523f5d5 100644
--- a/Lib/idlelib/zoomheight.py
+++ b/Lib/idlelib/zoomheight.py
@@ -28,26 +28,14 @@
         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 != ""