New submission from Terry J. Reedy:

On Win 10, Python 3.5 or 3.6, IDLE Shell or Editor with at least a few lines of 
text: hit Alt-G to open 'Goto' window.  Enter a line # other than the current 
one.  Hit <Return>.  Cursor moves to line enter, though it shrinks to one pixel 
wide from two pixels.  Line:col in status bar is updated.

Instead of hitting return, click [OK] button.  Same thing happens except that 
status bar line:col is NOT updated.  Here is relevant code in EditorWindow, 
about line 610

    def goto_line_event(self, event):
        text = self.text
        lineno = tkSimpleDialog.askinteger("Goto",
                "Go to line number:",parent=text)
        text.mark_set("insert", "%d.0" % lineno)
        text.see("insert")

Changing parent=text to parent=self.root makes no difference.  I have not yet 
tried simulating the interaction with button.invoke and 
event_generate('<Key-Return>.

My guess is that one of the last two tk methods is supposed to generate a 
cursor moved event that is bound to a reset status bar function.  But somehow 
the previous click instead of keypress inhibits the event.  So this seems a tk 
bug.  Sethiy, what do you think?

The workaround for IDLE is to manually invoke a status bar update.

----------
components: IDLE, Tkinter
messages: 266289
nosy: serhiy.storchaka, terry.reedy
priority: normal
severity: normal
stage: test needed
status: open
title: IDLE/tkinter: in simpledialog, <Return> != [OK] click
type: behavior
versions: Python 3.5, Python 3.6

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue27115>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to