[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#15999: 24.3.50; Redisplay broken with split windows
From: |
Stefan Monnier |
Subject: |
bug#15999: 24.3.50; Redisplay broken with split windows |
Date: |
Fri, 29 Nov 2013 13:01:03 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) |
> 115272: Stefan Monnier 2013-11-28 Refine redisplay optimizations to only
> redisplay *some* frames/windows
Sounds highly likely, indeed.
> 0. emacs -Q
> 1. M-x display-time-mode
> 3. C-x 2 (or C- x 3)
> 4. C-x b, so one window displays *scratch* and the other *Messages*.
> 5. When the displayed time changes, only the current buffer is updated;
> in the other buffer the time display is unchanged, and the scroll bar
> disappears (note my build does not use toolkit scroll bars, I don't
> know if that makes a differences.) This states of affairs remains
> until the non-updated buffer becomes current.
- The mode-line not being redrawn in the other window is expected.
The patch below should fix it.
- But for some reason I couldn't reproduce it (looks like something
somewhere in my tests is causing the extra redisplay needed).
Ah, I could reproduce it by building --without-toolkit-scroll-bars, so
it looks like the presence of toolkit scrollbars somehow plays an
important role.
- The scroll-bar disappearance is not expected. If the patch below
makes this problem disappear, it's only because it hides it, not
because it fixes it.
Stefan
=== modified file 'lisp/time.el'
--- lisp/time.el 2013-08-09 18:49:36 +0000
+++ lisp/time.el 2013-11-29 17:43:47 +0000
@@ -471,7 +471,7 @@
;; This is inside the let binding, but we are not going to document
;; what variables are available.
(run-hooks 'display-time-hook))
- (force-mode-line-update))
+ (force-mode-line-update 'all))
(defun display-time-file-nonempty-p (file)
(let ((remote-file-name-inhibit-cache (- display-time-interval 5)))