[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: address@hidden: Re: mode-line redisplay bug]
From: |
YAMAMOTO Mitsuharu |
Subject: |
Re: address@hidden: Re: mode-line redisplay bug] |
Date: |
Wed, 12 Oct 2005 17:41:18 +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) |
>>>>> On Wed, 12 Oct 2005 12:15:37 +0900, YAMAMOTO Mitsuharu <address@hidden>
>>>>> said:
> I tried it on Mac, and found that the calculated rectangle on a
> mode-line was not correct when it was displayed with a
> variable-width font.
Sorry for the noise. If enabled rows except the mode-line in the
current matrix are gathered to the lower indices, the following one
would be better.
YAMAMOTO Mitsuharu
address@hidden
*** xdisp.c.~1.1059.~ Wed Oct 12 09:31:47 2005
--- xdisp.c Wed Oct 12 14:59:59 2005
***************
*** 2059,2067 ****
width = WINDOW_FRAME_COLUMN_WIDTH (w);
height = WINDOW_FRAME_LINE_HEIGHT (w);
- r = MATRIX_FIRST_TEXT_ROW (w->current_matrix);
- end_row = r + w->current_matrix->nrows - 1;
-
if (w->pseudo_window_p)
{
area = TEXT_AREA;
--- 2059,2064 ----
***************
*** 2085,2097 ****
area = TEXT_AREA;
text_glyph:
gr = 0; gy = 0;
! for (; r < end_row && r->enabled_p; ++r)
! if (r->y + r->height > y)
! {
! gr = r; gy = r->y;
! break;
! }
if (gr && gy <= y)
{
--- 2082,2104 ----
area = TEXT_AREA;
text_glyph:
+ r = MATRIX_HEADER_LINE_ROW (w->current_matrix);
+ end_row = MATRIX_MODE_LINE_ROW (w->current_matrix);
+
gr = 0; gy = 0;
! for (; r <= end_row; ++r)
! {
! if (!r->enabled_p)
! if (end_row->enabled_p)
! r = end_row;
! else
! break;
! if (r->y + r->height > y)
! {
! gr = r; gy = r->y;
! break;
! }
! }
if (gr && gy <= y)
{
***************
*** 2148,2155 ****
width = WINDOW_SCROLL_BAR_AREA_WIDTH (w);
row_glyph:
gr = 0, gy = 0;
! for (; r < end_row && r->enabled_p; ++r)
if (r->y + r->height > y)
{
gr = r; gy = r->y;
--- 2155,2165 ----
width = WINDOW_SCROLL_BAR_AREA_WIDTH (w);
row_glyph:
+ r = MATRIX_FIRST_TEXT_ROW (w->current_matrix);
+ end_row = MATRIX_BOTTOM_TEXT_ROW (w->current_matrix, w);
+
gr = 0, gy = 0;
! for (; r <= end_row && r->enabled_p; ++r)
if (r->y + r->height > y)
{
gr = r; gy = r->y;
- Re: address@hidden: Re: mode-line redisplay bug], (continued)
- Re: address@hidden: Re: mode-line redisplay bug], Jan D., 2005/10/09
- Re: address@hidden: Re: mode-line redisplay bug], Jason Rumney, 2005/10/10
- Re: address@hidden: Re: mode-line redisplay bug], Jason Rumney, 2005/10/11
- Re: address@hidden: Re: mode-line redisplay bug], Kim F. Storm, 2005/10/11
- Re: address@hidden: Re: mode-line redisplay bug], YAMAMOTO Mitsuharu, 2005/10/11
- Re: address@hidden: Re: mode-line redisplay bug], Kim F. Storm, 2005/10/12
- Re: address@hidden: Re: mode-line redisplay bug],
YAMAMOTO Mitsuharu <=
- Re: address@hidden: Re: mode-line redisplay bug], Kim F. Storm, 2005/10/12
- Re: address@hidden: Re: mode-line redisplay bug], YAMAMOTO Mitsuharu, 2005/10/12
- Re: address@hidden: Re: mode-line redisplay bug], Jason Rumney, 2005/10/11
- Re: address@hidden: Re: mode-line redisplay bug], Kim F. Storm, 2005/10/11