diff --git a/Tools/idle/ZoomHeight.py b/Tools/idle/ZoomHeight.py
index 0aefea6..ecc306a 100644
--- a/Tools/idle/ZoomHeight.py
+++ b/Tools/idle/ZoomHeight.py
@@ -23,21 +23,24 @@
 
     def zoom_height_event(self, event):
         top = self.editwin.top
-        geom = top.wm_geometry()
-        m = re.match(r"(\d+)x(\d+)\+(-?\d+)\+(-?\d+)", geom)
-        if not m:
-            top.bell()
-            return
-        width, height, x, y = map(int, m.groups())
-        newheight = top.winfo_screenheight()
-        if sys.platform == 'win32':
-            newy = 0
-            newheight = newheight - 72
-        else:
-            newy = 24
-            newheight = newheight - 96
-        if height >= newheight:
-            newgeom = ""
-        else:
-            newgeom = "%dx%d+%d+%d" % (width, newheight, x, newy)
-        top.wm_geometry(newgeom)
+        zoom_height(top)
+
+def zoom_height(top):
+    geom = top.wm_geometry()
+    m = re.match(r"(\d+)x(\d+)\+(-?\d+)\+(-?\d+)", geom)
+    if not m:
+        top.bell()
+        return
+    width, height, x, y = map(int, m.groups())
+    newheight = top.winfo_screenheight()
+    if sys.platform == 'win32':
+        newy = 0
+        newheight = newheight - 72
+    else:
+        newy = 24
+        newheight = newheight - 96
+    if height >= newheight:
+        newgeom = ""
+    else:
+        newgeom = "%dx%d+%d+%d" % (width, newheight, x, newy)
+    top.wm_geometry(newgeom)
