ipython/ipython — pull request #4768 by pankajp (2014-01-08 10:10:26+00:00)
Title: Qt console: Fix _prompt_pos accounting on timer flush output.

When output is appended to the frontend widget by the output
flushing timer, the `_prompt_pos` was not being modified accordingly.
This could cause incorrect prompt position resulting in apparent
freezing of the prompt in some circumstances.

Running the following file and then doing `p.edit_traits()` a couple
of times in the frontend and clicking the button shows the error
some times, when the prompt stops responding to `enter` and
`backspace` once the prompt pos exceeds the document's size.

```
from traits.api import *
from traitsui.api import *

class Problem(HasTraits):
e = Button

def _e_changed(self, content):
print 'E CHANGED', content

traits_view = View(
Item('e'),
)

p = Problem()
p.edit_traits()
```

I would also like this to be backported into `1.x` branch, but i'm not sure of the procedure.