unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* 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 public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).