From f7faea89ade2f179199296ca5c1caf8cd2a06e7b Mon Sep 17 00:00:00 2001 From: Matthias BUSSONNIER Date: Tue, 5 Jun 2012 09:07:08 +0200 Subject: [PATCH] fix Ctrl+G/esc intercepted bug --- IPython/frontend/qt/console/console_widget.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/IPython/frontend/qt/console/console_widget.py b/IPython/frontend/qt/console/console_widget.py index d01181abde5..75bb12e9232 100644 --- a/IPython/frontend/qt/console/console_widget.py +++ b/IPython/frontend/qt/console/console_widget.py @@ -171,7 +171,7 @@ def _font_family_default(self): [ QtCore.Qt.Key_C, QtCore.Qt.Key_G, QtCore.Qt.Key_O, QtCore.Qt.Key_V ]) - _is_completing = False + _temp_buffer_filled = False #--------------------------------------------------------------------------- # 'QObject' interface @@ -850,6 +850,7 @@ def _clear_temporary_buffer(self): the prompt region. """ # Select and remove all text below the input buffer. + _temp_buffer_filled = False cursor = self._get_prompt_cursor() prompt = self._continuation_prompt.lstrip() while cursor.movePosition(QtGui.QTextCursor.NextBlock): @@ -894,7 +895,6 @@ def _complete_with_items(self, cursor, items): cursor.movePosition(QtGui.QTextCursor.Left, n=len(prefix)) self._completion_widget.show_items(cursor, items) - self._is_completing = True def _fill_temporary_buffer(self, cursor, text, html=False): @@ -911,6 +911,8 @@ def _fill_temporary_buffer(self, cursor, text, html=False): self._control.moveCursor(QtGui.QTextCursor.End) self._control.setTextCursor(cursor) + _temp_buffer_filled = True + def _context_menu_make(self, pos): """ Creates a context menu for the given QPoint (in widget coordinates). @@ -1654,8 +1656,9 @@ def _keep_cursor_in_buffer(self): def _keyboard_quit(self): """ Cancels the current editing task ala Ctrl-G in Emacs. """ - if self._is_completing: + if self._temp_buffer_filled : self._cancel_completion() + self._clear_temporary_buffer() else: self.input_buffer = ''