all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Excessive redraw of tool bar lines
@ 2005-11-12  3:05 YAMAMOTO Mitsuharu
  0 siblings, 0 replies; only message in thread
From: YAMAMOTO Mitsuharu @ 2005-11-12  3:05 UTC (permalink / raw)


I found that the rightmost icons and the trailing spaces in the tool
bar lines are drawn on every redraw (except simple cursor motions)
even when the tool bar items are not changed.  I think it also occurs
in the usual text lines where the face is extended to the end of line.

Does the following patch do the right thing?

BTW, "Quartz Debug.app" on Mac OS X is useful to find such a needless
redraw.

				     YAMAMOTO Mitsuharu
				mituharu@math.s.chiba-u.ac.jp

Index: src/dispnew.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/dispnew.c,v
retrieving revision 1.358
diff -c -r1.358 dispnew.c
*** src/dispnew.c	7 Oct 2005 21:47:49 -0000	1.358
--- src/dispnew.c	12 Nov 2005 02:53:00 -0000
***************
*** 4361,4367 ****
        /* If the desired row extends its face to the text area end,
  	 make sure we write at least one glyph, so that the face
  	 extension actually takes place.  */
!       if (MATRIX_ROW_EXTENDS_FACE_P (desired_row))
  	--desired_stop_pos;
  
        stop = min (current_row->used[TEXT_AREA], desired_stop_pos);
--- 4361,4370 ----
        /* If the desired row extends its face to the text area end,
  	 make sure we write at least one glyph, so that the face
  	 extension actually takes place.  */
!       if (MATRIX_ROW_EXTENDS_FACE_P (desired_row)
! 	  && (desired_stop_pos < current_row->used[TEXT_AREA]
! 	      || (desired_stop_pos == current_row->used[TEXT_AREA]
! 		  && !MATRIX_ROW_EXTENDS_FACE_P (current_row))))
  	--desired_stop_pos;
  
        stop = min (current_row->used[TEXT_AREA], desired_stop_pos);
***************
*** 4480,4486 ****
  	     has to be cleared, if and only if we did a write_glyphs
  	     above.  This is made sure by setting desired_stop_pos
  	     appropriately above.  */
! 	  xassert (i < desired_row->used[TEXT_AREA]);
  	}
        else if (MATRIX_ROW_EXTENDS_FACE_P (current_row))
  	{
--- 4483,4492 ----
  	     has to be cleared, if and only if we did a write_glyphs
  	     above.  This is made sure by setting desired_stop_pos
  	     appropriately above.  */
! 	  xassert (i < desired_row->used[TEXT_AREA]
! 		   || ((desired_row->used[TEXT_AREA]
! 			== current_row->used[TEXT_AREA])
! 		       && MATRIX_ROW_EXTENDS_FACE_P (current_row)));
  	}
        else if (MATRIX_ROW_EXTENDS_FACE_P (current_row))
  	{

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2005-11-12  3:05 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-11-12  3:05 Excessive redraw of tool bar lines 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.