[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#31115: 26.1; python shell flicker
From: |
Noam Postavsky |
Subject: |
bug#31115: 26.1; python shell flicker |
Date: |
Sat, 14 Apr 2018 10:42:12 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.0.90 (gnu/linux) |
severity 31115 minor
tags 31115 + confirmed
quit
Andreas Röhler <andreas.roehler@easy-emacs.de> writes:
> On 09.04.2018 20:19, Charles A. Roelli wrote:
>> emacs -q
>> M-x run-python RET C-x o
>>
>> Now press and hold down RET: a lot of prompts fly by, and as soon as
>> point reaches the bottom of the window, there is some flicker where
>> the cursor momentarily appears centered (as if `recenter' was run) and
>> simultaneously all the text in the buffer blinks as if the whole
>> screen was cleared and redrawn. In contrast, if you try this same
>> recipe in a normal shell buffer from M-x shell, there won't be any
>> flicker.
> Can't reproduce with GNU Emacs 26.1 (build 1, i686-pc-linux-gnu, GTK+
> Version 3.14.5) of 2018-04-10 at Debian
I can reproduce on Emacs 26, both lucid and GTK builds. Seems pretty
straightforward: point reaches the end of buffer, so Emacs autoscrolls
by half a window, then python-comint-postoutput-scroll-to-bottom kicks
in and scrolls back to the bottom.
>> A naive fix is to comment out the meat of python-comint-postoutput-
>> scroll-to-bottom, and reevaluate it:
>>
>> (defun python-comint-postoutput-scroll-to-bottom (output)
>> "Faster version of `comint-postoutput-scroll-to-bottom'.
>> Avoids `recenter' calls until OUTPUT is completely sent."
>> ;; (when (and (not (string= "" output))
>> ;; (python-shell-comint-end-of-output-p
>> ;; (ansi-color-filter-apply output)))
>> ;; (comint-postoutput-scroll-to-bottom output))
>> output)
Right, that help because Emacs no longer scrolls the window back to the
bottom. Seems like (setq scroll-conservatively 1) works better to
preserve the original behaviour (I feel like that's too easy, so I must
be missing something though).