GNU bug report logs - #16932
24.3; Fringe does not get correctly updated under very specific circumstances

Previous Next

Package: emacs;

Reported by: David Engster <deng <at> randomsample.de>

Date: Mon, 3 Mar 2014 21:10:02 UTC

Severity: normal

Found in version 24.3

Done: YAMAMOTO Mitsuharu <mituharu <at> math.s.chiba-u.ac.jp>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 16932 in the body.
You can then email your comments to 16932 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#16932; Package emacs. (Mon, 03 Mar 2014 21:10:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to David Engster <deng <at> randomsample.de>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 03 Mar 2014 21:10:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: David Engster <deng <at> randomsample.de>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.3; Fringe does not get correctly updated under very specific
 circumstances
Date: Mon, 03 Mar 2014 22:08:52 +0100
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




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#16932; Package emacs. (Tue, 04 Mar 2014 05:46:02 GMT) Full text and rfc822 format available.

Message #8 received at 16932 <at> debbugs.gnu.org (full text, mbox):

From: YAMAMOTO Mitsuharu <mituharu <at> math.s.chiba-u.ac.jp>
To: David Engster <deng <at> randomsample.de>
Cc: 16932 <at> debbugs.gnu.org
Subject: Re: bug#16932: 24.3; Fringe does not get correctly updated under very
 specific	circumstances
Date: Tue, 04 Mar 2014 14:44:54 +0900
>>>>> On Mon, 03 Mar 2014 22:08:52 +0100, David Engster <deng <at> 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 <at> math.s.chiba-u.ac.jp




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#16932; Package emacs. (Tue, 04 Mar 2014 08:01:02 GMT) Full text and rfc822 format available.

Message #11 received at 16932 <at> debbugs.gnu.org (full text, mbox):

From: David Engster <deng <at> randomsample.de>
To: YAMAMOTO Mitsuharu <mituharu <at> math.s.chiba-u.ac.jp>
Cc: 16932 <at> debbugs.gnu.org
Subject: Re: bug#16932: 24.3; Fringe does not get correctly updated under very
 specific	circumstances
Date: Tue, 04 Mar 2014 09:00:30 +0100
YAMAMOTO Mitsuharu writes:
>>>>>> On Mon, 03 Mar 2014 22:08:52 +0100, David Engster <deng <at> 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




Reply sent to YAMAMOTO Mitsuharu <mituharu <at> math.s.chiba-u.ac.jp>:
You have taken responsibility. (Tue, 04 Mar 2014 11:08:02 GMT) Full text and rfc822 format available.

Notification sent to David Engster <deng <at> randomsample.de>:
bug acknowledged by developer. (Tue, 04 Mar 2014 11:08:03 GMT) Full text and rfc822 format available.

Message #16 received at 16932-done <at> debbugs.gnu.org (full text, mbox):

From: YAMAMOTO Mitsuharu <mituharu <at> math.s.chiba-u.ac.jp>
To: David Engster <deng <at> randomsample.de>
Cc: 16932-done <at> debbugs.gnu.org
Subject: Re: bug#16932: 24.3; Fringe does not get correctly updated under very
 specific	circumstances
Date: Tue, 04 Mar 2014 20:07:31 +0900
>>>>> On Tue, 04 Mar 2014 09:00:30 +0100, David Engster <deng <at> 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 <at> math.s.chiba-u.ac.jp




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 01 Apr 2014 11:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 10 years and 33 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.