Fixed issue #2638: Show a window constructed with tkSimpleDialog.Dialog only

after it is has been populated and properly configured in order to prevent
window flashing.
This commit is contained in:
Guilherme Polo 2009-03-07 02:14:38 +00:00
parent 3768b2f4ce
commit 15d57653f1
2 changed files with 10 additions and 2 deletions

View File

@ -46,6 +46,7 @@ class Dialog(Toplevel):
'''
Toplevel.__init__(self, parent)
self.withdraw() # remain invisible for now
# If the master is not viewable, don't
# make the child transient, or else it
# would be opened withdrawn
@ -65,8 +66,6 @@ class Dialog(Toplevel):
self.buttonbox()
self.wait_visibility() # window needs to be visible for the grab
self.grab_set()
if not self.initial_focus:
self.initial_focus = self
@ -77,8 +76,13 @@ class Dialog(Toplevel):
self.geometry("+%d+%d" % (parent.winfo_rootx()+50,
parent.winfo_rooty()+50))
self.deiconify() # become visibile now
self.initial_focus.focus_set()
# wait for window to appear on screen before calling grab_set
self.wait_visibility()
self.grab_set()
self.wait_window(self)
def destroy(self):

View File

@ -168,6 +168,10 @@ Core and Builtins
Library
-------
- Issue #2638: Show a window constructed with tkSimpleDialog.Dialog only after
it is has been populated and properly configured in order to prevent
window flashing.
- Issue #4792: Prevent a segfault in _tkinter by using the
guaranteed to be safe interp argument given to the PythonCmd in place of
the Tcl interpreter taken from a PythonCmd_ClientData.