* bug#16932: 24.3; Fringe does not get correctly updated under very specific circumstances
@ 2014-03-03 21:08 David Engster
2014-03-04 5:44 ` YAMAMOTO Mitsuharu
0 siblings, 1 reply; 4+ messages in thread
From: David Engster @ 2014-03-03 21:08 UTC (permalink / raw)
To: 16932
I noticed that sometimes icons in the fringe from previous buffers
remained visible when I switched buffers. It was quite difficult to
reproduce, but I finally noticed that it always happens when you switch
to(!) a buffer where
- point is on a tabulator
- there's an overlay on that tabulator until the end of the line
- that overlay has a face property with the fringe's background color
Here's a recipe through which I can reliably reproduce this issue on
GNU/Linux with Emacs from today's trunk:
* Create a file, for instance "test.el", with the following contents:
(setq-default indicate-buffer-boundaries 'left)
(defface someface
`((t (:background ,(face-background 'fringe))))
"face with same background as fringe")
(goto-char (point-min))
(insert "\t\n")
(setq ov (make-overlay (point-min)
(progn (goto-char (point-min)) (point-at-eol))))
(overlay-put ov 'face 'someface)
(switch-to-buffer (get-buffer-create "test"))
(insert "\n\n\n\n")
(redisplay t)
(switch-to-buffer "*scratch*")
* Start emacs with
emacs -Q -l test.el
* In the left fringe, you should see boundary indicators for the current
scratch buffer as well as for the previously visible buffer 'test'.
-David
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#16932: 24.3; Fringe does not get correctly updated under very specific circumstances
2014-03-03 21:08 bug#16932: 24.3; Fringe does not get correctly updated under very specific circumstances David Engster
@ 2014-03-04 5:44 ` YAMAMOTO Mitsuharu
2014-03-04 8:00 ` David Engster
0 siblings, 1 reply; 4+ messages in thread
From: YAMAMOTO Mitsuharu @ 2014-03-04 5:44 UTC (permalink / raw)
To: David Engster; +Cc: 16932
>>>>> On Mon, 03 Mar 2014 22:08:52 +0100, David Engster <deng@randomsample.de> said:
> I noticed that sometimes icons in the fringe from previous buffers
> remained visible when I switched buffers. It was quite difficult to
> reproduce, but I finally noticed that it always happens when you switch
> to(!) a buffer where
> - point is on a tabulator
> - there's an overlay on that tabulator until the end of the line
> - that overlay has a face property with the fringe's background color
Thanks for narrowing this case down. Could you try the following
patch?
=== modified file 'src/xterm.c'
*** src/xterm.c 2014-03-03 08:27:58 +0000
--- src/xterm.c 2014-03-04 05:32:27 +0000
***************
*** 2501,2506 ****
--- 2501,2508 ----
XFillRectangle (s->display, s->window, gc, x, y, w, h);
XSetForeground (s->display, gc, xgcv.foreground);
}
+
+ XSetClipMask (s->display, gc, None);
}
}
else if (!s->background_filled_p)
BTW, the latest Mac port (*) has the same problem and the
corresponding patch would be as follows:
*: http://lists.gnu.org/archive/html/emacs-devel/2014-02/msg00592.html
=== modified file 'src/macterm.c'
*** src/macterm.c 2014-02-27 10:27:00 +0000
--- src/macterm.c 2014-03-04 05:35:52 +0000
***************
*** 2420,2425 ****
--- 2420,2427 ----
else
#endif /* MAC_TODO */
mac_erase_rectangle (s->f, gc, x, y, w, h);
+
+ mac_reset_clip_rectangles (s->f, gc);
}
}
else if (!s->background_filled_p)
YAMAMOTO Mitsuharu
mituharu@math.s.chiba-u.ac.jp
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#16932: 24.3; Fringe does not get correctly updated under very specific circumstances
2014-03-04 5:44 ` YAMAMOTO Mitsuharu
@ 2014-03-04 8:00 ` David Engster
2014-03-04 11:07 ` YAMAMOTO Mitsuharu
0 siblings, 1 reply; 4+ messages in thread
From: David Engster @ 2014-03-04 8:00 UTC (permalink / raw)
To: YAMAMOTO Mitsuharu; +Cc: 16932
YAMAMOTO Mitsuharu writes:
>>>>>> On Mon, 03 Mar 2014 22:08:52 +0100, David Engster <deng@randomsample.de> said:
>
>> I noticed that sometimes icons in the fringe from previous buffers
>> remained visible when I switched buffers. It was quite difficult to
>> reproduce, but I finally noticed that it always happens when you switch
>> to(!) a buffer where
>
>> - point is on a tabulator
>> - there's an overlay on that tabulator until the end of the line
>> - that overlay has a face property with the fringe's background color
>
> Thanks for narrowing this case down. Could you try the following
> patch?
[...]
Yes, that fixes it. Thank you!
-David
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#16932: 24.3; Fringe does not get correctly updated under very specific circumstances
2014-03-04 8:00 ` David Engster
@ 2014-03-04 11:07 ` YAMAMOTO Mitsuharu
0 siblings, 0 replies; 4+ messages in thread
From: YAMAMOTO Mitsuharu @ 2014-03-04 11:07 UTC (permalink / raw)
To: David Engster; +Cc: 16932-done
>>>>> On Tue, 04 Mar 2014 09:00:30 +0100, David Engster <deng@randomsample.de> said:
>>> I noticed that sometimes icons in the fringe from previous buffers
>>> remained visible when I switched buffers. It was quite difficult
>>> to reproduce, but I finally noticed that it always happens when
>>> you switch to(!) a buffer where
>>
>>> - point is on a tabulator - there's an overlay on that tabulator
>>> until the end of the line - that overlay has a face property with
>>> the fringe's background color
>>
>> Thanks for narrowing this case down. Could you try the following
>> patch?
> [...]
> Yes, that fixes it. Thank you!
Thanks for testing. I've just installed the patch.
YAMAMOTO Mitsuharu
mituharu@math.s.chiba-u.ac.jp
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-03-04 11:07 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-03 21:08 bug#16932: 24.3; Fringe does not get correctly updated under very specific circumstances David Engster
2014-03-04 5:44 ` YAMAMOTO Mitsuharu
2014-03-04 8:00 ` David Engster
2014-03-04 11:07 ` YAMAMOTO Mitsuharu
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.