mirror of
https://github.com/python/cpython.git
synced 2025-07-24 11:44:31 +00:00
Issue #5124: Paste with selection should always replace.
This is how paste work on Windows, Mac, modern Linux apps, and ttk widgets. The exception was X11 tk widgets. Original patch by Serhiy Storchake.
This commit is contained in:
parent
904a2ef2e2
commit
5ad8599caa
2 changed files with 85 additions and 1 deletions
|
@ -1396,6 +1396,17 @@ class PseudoInputFile(PseudoFile):
|
|||
self.shell.close()
|
||||
|
||||
|
||||
def fix_x11_paste(root):
|
||||
"Make paste replace selection on x11. See issue #5124."
|
||||
if root._windowingsystem == 'x11':
|
||||
for cls in 'Text', 'Entry', 'Spinbox':
|
||||
root.bind_class(
|
||||
cls,
|
||||
'<<Paste>>',
|
||||
'catch {%W delete sel.first sel.last}\n' +
|
||||
root.bind_class(cls, '<<Paste>>'))
|
||||
|
||||
|
||||
usage_msg = """\
|
||||
|
||||
USAGE: idle [-deins] [-t title] [file]*
|
||||
|
@ -1528,8 +1539,10 @@ def main():
|
|||
'editor-on-startup', type='bool')
|
||||
enable_edit = enable_edit or edit_start
|
||||
enable_shell = enable_shell or not enable_edit
|
||||
|
||||
# start editor and/or shell windows:
|
||||
root = Tk(className="Idle")
|
||||
root.withdraw()
|
||||
|
||||
# set application icon
|
||||
icondir = os.path.join(os.path.dirname(__file__), 'Icons')
|
||||
|
@ -1544,7 +1557,7 @@ def main():
|
|||
root.wm_iconphoto(True, *icons)
|
||||
|
||||
fixwordbreaks(root)
|
||||
root.withdraw()
|
||||
fix_x11_paste(root)
|
||||
flist = PyShellFileList(root)
|
||||
macosxSupport.setupApp(root, flist)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue