Terry J. Reedy <tjre...@udel.edu> added the comment:

I presume that at some point you got a completion box.  It disappeared with 
this traceback and when >>> appeared, you continued.  What python binary? 
3.8.5?  3.8.6? My diagnosis so far.

__call__ is a method in CallWrapper.  The wrapped func is multicall.handler.  
The exception was caught in the
    except: self.widget._report_exception()
clause of __call__, but it should never have been raised.

keyrelease_event catches internal errors.  If the insert cursor is not where 
IDLE expects, because "# we didn't catch an event which moved the insert", IDLE 
just closes box rather than trying to recover.  I presume that this should 
never happen.  But when it did, a ValueError was raised for the reason given.  
In this error state, multicall.event_delete makes an invalid assumption.

The simple and immediate fix would be to catch the very rare delete failure.  A 
better and harder fix would be to catch the uncaught insert-moving event. For 
this, it would have been nice if keyrelease displayed a message identifying the 
released key with an email request.  I should  try to reproduce the failure 
(including on Mac) by trying every key (or type of key) that might possibly 
move the cursor.

----------

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

Reply via email to