diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2019-06-06 23:37:32 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-06 23:37:32 -0700 |
commit | 685b806549cc956aeeb3a57fe15ee5a4d1704aed (patch) | |
tree | 1768c0193d19e816430c8186d00d6acd5c4c3912 /Lib | |
parent | dc20fc4311dece19488299a7cd11317ffbe4d3c3 (diff) | |
download | cpython-git-685b806549cc956aeeb3a57fe15ee5a4d1704aed.tar.gz |
bpo-37177: make IDLE's search dialogs transient (GH-13869)
This avoids the search dialogs being hidden behind the editor window.
(cherry picked from commit 554450fb4e95066e825bdb4a2d544a490daeebdc)
Co-authored-by: Tal Einat <taleinat@gmail.com>
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/idlelib/idle_test/test_searchbase.py | 11 | ||||
-rw-r--r-- | Lib/idlelib/searchbase.py | 2 |
2 files changed, 8 insertions, 5 deletions
diff --git a/Lib/idlelib/idle_test/test_searchbase.py b/Lib/idlelib/idle_test/test_searchbase.py index 6dd4d79337..e08268fde2 100644 --- a/Lib/idlelib/idle_test/test_searchbase.py +++ b/Lib/idlelib/idle_test/test_searchbase.py @@ -4,7 +4,7 @@ import unittest from test.support import requires -from tkinter import Tk +from tkinter import Text, Tk, Toplevel from tkinter.ttk import Frame from idlelib import searchengine as se from idlelib import searchbase as sdb @@ -47,14 +47,15 @@ class SearchDialogBaseTest(unittest.TestCase): # open calls create_widgets, which needs default_command self.dialog.default_command = None - # Since text parameter of .open is not used in base class, - # pass dummy 'text' instead of tk.Text(). - self.dialog.open('text') + toplevel = Toplevel(self.root) + self.addCleanup(toplevel.destroy) + text = Text(toplevel) + self.dialog.open(text) self.assertEqual(self.dialog.top.state(), 'normal') self.dialog.close() self.assertEqual(self.dialog.top.state(), 'withdrawn') - self.dialog.open('text', searchphrase="hello") + self.dialog.open(text, searchphrase="hello") self.assertEqual(self.dialog.ent.get(), 'hello') self.dialog.close() diff --git a/Lib/idlelib/searchbase.py b/Lib/idlelib/searchbase.py index 4ed94f186b..6fba0b8e58 100644 --- a/Lib/idlelib/searchbase.py +++ b/Lib/idlelib/searchbase.py @@ -54,6 +54,7 @@ class SearchDialogBase: else: self.top.deiconify() self.top.tkraise() + self.top.transient(text.winfo_toplevel()) if searchphrase: self.ent.delete(0,"end") self.ent.insert("end",searchphrase) @@ -66,6 +67,7 @@ class SearchDialogBase: "Put dialog away for later use." if self.top: self.top.grab_release() + self.top.transient('') self.top.withdraw() def create_widgets(self): |