]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.12] gh-57795: IDLE: Enter the selected text when opening the "Replace" dialog...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Wed, 27 Dec 2023 14:57:01 +0000 (15:57 +0100)
committerGitHub <noreply@github.com>
Wed, 27 Dec 2023 14:57:01 +0000 (14:57 +0000)
(cherry picked from commit 712afab5acbe27ceb1eddde5aa559078ae7eaa3b)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
Co-authored-by: Roger Serwy <roger.serwy@gmail.com>
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Lib/idlelib/replace.py
Misc/NEWS.d/next/IDLE/2019-12-13-12-26-56.bpo-13586.1grqsR.rst [new file with mode: 0644]

index 71e187f9279231303c8b213fc9f558ad9a6379e9..1cddb638b217ff6e254b552895104836f5a17867 100644 (file)
@@ -26,7 +26,8 @@ def replace(text, insert_tags=None):
     if not hasattr(engine, "_replacedialog"):
         engine._replacedialog = ReplaceDialog(root, engine)
     dialog = engine._replacedialog
-    dialog.open(text, insert_tags=insert_tags)
+    searchphrase = text.get("sel.first", "sel.last")
+    dialog.open(text, searchphrase, insert_tags=insert_tags)
 
 
 class ReplaceDialog(SearchDialogBase):
@@ -52,27 +53,17 @@ class ReplaceDialog(SearchDialogBase):
         self.replvar = StringVar(root)
         self.insert_tags = None
 
-    def open(self, text, insert_tags=None):
+    def open(self, text, searchphrase=None, *, insert_tags=None):
         """Make dialog visible on top of others and ready to use.
 
-        Also, highlight the currently selected text and set the
-        search to include the current selection (self.ok).
+        Also, set the search to include the current selection
+        (self.ok).
 
         Args:
             text: Text widget being searched.
+            searchphrase: String phrase to search.
         """
-        SearchDialogBase.open(self, text)
-        try:
-            first = text.index("sel.first")
-        except TclError:
-            first = None
-        try:
-            last = text.index("sel.last")
-        except TclError:
-            last = None
-        first = first or text.index("insert")
-        last = last or first
-        self.show_hit(first, last)
+        SearchDialogBase.open(self, text, searchphrase)
         self.ok = True
         self.insert_tags = insert_tags
 
diff --git a/Misc/NEWS.d/next/IDLE/2019-12-13-12-26-56.bpo-13586.1grqsR.rst b/Misc/NEWS.d/next/IDLE/2019-12-13-12-26-56.bpo-13586.1grqsR.rst
new file mode 100644 (file)
index 0000000..1a73cad
--- /dev/null
@@ -0,0 +1 @@
+Enter the selected text when opening the "Replace" dialog.