Do a better job of keeping the dialog visible when the master window
is near or beyond the edge of the screen. Patch by Skip Montanaro.
diff --git a/Lib/lib-tk/SimpleDialog.py b/Lib/lib-tk/SimpleDialog.py
index 7354779..950df2f 100644
--- a/Lib/lib-tk/SimpleDialog.py
+++ b/Lib/lib-tk/SimpleDialog.py
@@ -52,6 +52,14 @@
w_height = widget.winfo_reqheight()
x = m_x + (m_width - w_width) * relx
y = m_y + (m_height - w_height) * rely
+ if x+w_width > master.winfo_screenwidth():
+ x = master.winfo_screenwidth() - w_width
+ elif x < 0:
+ x = 0
+ if y+w_height > master.winfo_screenheight():
+ y = master.winfo_screenheight() - w_height
+ elif y < 0:
+ y = 0
widget.geometry("+%d+%d" % (x, y))
widget.deiconify() # Become visible at the desired location