[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Excessive redraw of tool bar lines
From: |
YAMAMOTO Mitsuharu |
Subject: |
Excessive redraw of tool bar lines |
Date: |
Sat, 12 Nov 2005 12:05:37 +0900 |
User-agent: |
Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.6 (Marutamachi) APEL/10.6 Emacs/22.0.50 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI) |
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
address@hidden
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))
{
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Excessive redraw of tool bar lines,
YAMAMOTO Mitsuharu <=