summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2004-08-03 18:36:25 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2004-08-03 18:36:25 (GMT)
commitb217cd802ec5c9647278b74c311a14a8cdf13d2e (patch)
treef2ded9eaae732f8837fbd001d996204a0b6cb8ab
parentf901abdd62c9067f993b85392dbb73a560af6325 (diff)
downloadcpython-b217cd802ec5c9647278b74c311a14a8cdf13d2e.zip
cpython-b217cd802ec5c9647278b74c311a14a8cdf13d2e.tar.gz
cpython-b217cd802ec5c9647278b74c311a14a8cdf13d2e.tar.bz2
Wait for visibility before setting a grab. Fixes #946153.
-rw-r--r--Lib/lib-tk/FileDialog.py1
-rw-r--r--Lib/lib-tk/SimpleDialog.py1
-rw-r--r--Lib/lib-tk/tkSimpleDialog.py1
3 files changed, 3 insertions, 0 deletions
diff --git a/Lib/lib-tk/FileDialog.py b/Lib/lib-tk/FileDialog.py
index 5e848da..b08d3a8 100644
--- a/Lib/lib-tk/FileDialog.py
+++ b/Lib/lib-tk/FileDialog.py
@@ -119,6 +119,7 @@ class FileDialog:
self.set_selection(default)
self.filter_command()
self.selection.focus_set()
+ self.top.wait_visibility() # window needs to be visible for the grab
self.top.grab_set()
self.how = None
self.master.mainloop() # Exited by self.quit(how)
diff --git a/Lib/lib-tk/SimpleDialog.py b/Lib/lib-tk/SimpleDialog.py
index bb63a8d..cb08318 100644
--- a/Lib/lib-tk/SimpleDialog.py
+++ b/Lib/lib-tk/SimpleDialog.py
@@ -64,6 +64,7 @@ class SimpleDialog:
widget.deiconify() # Become visible at the desired location
def go(self):
+ self.root.wait_visibility()
self.root.grab_set()
self.root.mainloop()
self.root.destroy()
diff --git a/Lib/lib-tk/tkSimpleDialog.py b/Lib/lib-tk/tkSimpleDialog.py
index 01709d8..4d11ce0 100644
--- a/Lib/lib-tk/tkSimpleDialog.py
+++ b/Lib/lib-tk/tkSimpleDialog.py
@@ -61,6 +61,7 @@ class Dialog(Toplevel):
self.buttonbox()
+ self.wait_visibility() # window needs to be visible for the grab
self.grab_set()
if not self.initial_focus: