summaryrefslogtreecommitdiff
path: root/Lib
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2019-06-06 23:37:32 -0700
committerGitHub <noreply@github.com>2019-06-06 23:37:32 -0700
commit685b806549cc956aeeb3a57fe15ee5a4d1704aed (patch)
tree1768c0193d19e816430c8186d00d6acd5c4c3912 /Lib
parentdc20fc4311dece19488299a7cd11317ffbe4d3c3 (diff)
downloadcpython-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.py11
-rw-r--r--Lib/idlelib/searchbase.py2
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):