mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
bpo-39885: Make IDLE context menu cut and copy work again (GH-18951)
Leave selection when right click within. This exception to clearing selections when right-clicking was omitted from the previous commit, 4ca060d
. I did not realize that this completely disabled the context menu entries, and I should have merged a minimal fix immediately. An automated test should follow.
This commit is contained in:
parent
8bd216dfed
commit
97e4e0f53d
4 changed files with 52 additions and 16 deletions
|
@ -499,15 +499,23 @@ class EditorWindow(object):
|
|||
rmenu = None
|
||||
|
||||
def right_menu_event(self, event):
|
||||
self.text.tag_remove("sel", "1.0", "end")
|
||||
self.text.mark_set("insert", "@%d,%d" % (event.x, event.y))
|
||||
text = self.text
|
||||
newdex = text.index(f'@{event.x},{event.y}')
|
||||
try:
|
||||
in_selection = (text.compare('sel.first', '<=', newdex) and
|
||||
text.compare(newdex, '<=', 'sel.last'))
|
||||
except TclError:
|
||||
in_selection = False
|
||||
if not in_selection:
|
||||
text.tag_remove("sel", "1.0", "end")
|
||||
text.mark_set("insert", newdex)
|
||||
if not self.rmenu:
|
||||
self.make_rmenu()
|
||||
rmenu = self.rmenu
|
||||
self.event = event
|
||||
iswin = sys.platform[:3] == 'win'
|
||||
if iswin:
|
||||
self.text.config(cursor="arrow")
|
||||
text.config(cursor="arrow")
|
||||
|
||||
for item in self.rmenu_specs:
|
||||
try:
|
||||
|
@ -520,7 +528,6 @@ class EditorWindow(object):
|
|||
state = getattr(self, verify_state)()
|
||||
rmenu.entryconfigure(label, state=state)
|
||||
|
||||
|
||||
rmenu.tk_popup(event.x_root, event.y_root)
|
||||
if iswin:
|
||||
self.text.config(cursor="ibeam")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue