2060 |
height = WINDOW_FRAME_LINE_HEIGHT (w); |
height = WINDOW_FRAME_LINE_HEIGHT (w); |
2061 |
|
|
2062 |
r = MATRIX_FIRST_TEXT_ROW (w->current_matrix); |
r = MATRIX_FIRST_TEXT_ROW (w->current_matrix); |
2063 |
end_row = r + w->current_matrix->nrows - 1; |
end_row = MATRIX_BOTTOM_TEXT_ROW (w->current_matrix, w); |
2064 |
|
|
2065 |
if (w->pseudo_window_p) |
if (w->pseudo_window_p) |
2066 |
{ |
{ |
2079 |
area = RIGHT_MARGIN_AREA; |
area = RIGHT_MARGIN_AREA; |
2080 |
goto text_glyph; |
goto text_glyph; |
2081 |
|
|
|
case ON_TEXT: |
|
|
case ON_MODE_LINE: |
|
2082 |
case ON_HEADER_LINE: |
case ON_HEADER_LINE: |
2083 |
|
case ON_MODE_LINE: |
2084 |
|
gr = (part == ON_HEADER_LINE |
2085 |
|
? MATRIX_HEADER_LINE_ROW (w->current_matrix) |
2086 |
|
: MATRIX_MODE_LINE_ROW (w->current_matrix)); |
2087 |
|
gy = gr->y; |
2088 |
|
area = TEXT_AREA; |
2089 |
|
goto text_glyph_row_found; |
2090 |
|
|
2091 |
|
case ON_TEXT: |
2092 |
area = TEXT_AREA; |
area = TEXT_AREA; |
2093 |
|
|
2094 |
text_glyph: |
text_glyph: |
2095 |
gr = 0; gy = 0; |
gr = 0; gy = 0; |
2096 |
for (; r < end_row && r->enabled_p; ++r) |
for (; r <= end_row && r->enabled_p; ++r) |
2097 |
if (r->y + r->height > y) |
if (r->y + r->height > y) |
2098 |
{ |
{ |
2099 |
gr = r; gy = r->y; |
gr = r; gy = r->y; |
2100 |
break; |
break; |
2101 |
} |
} |
2102 |
|
|
2103 |
|
text_glyph_row_found: |
2104 |
if (gr && gy <= y) |
if (gr && gy <= y) |
2105 |
{ |
{ |
2106 |
struct glyph *g = gr->glyphs[area]; |
struct glyph *g = gr->glyphs[area]; |
2157 |
|
|
2158 |
row_glyph: |
row_glyph: |
2159 |
gr = 0, gy = 0; |
gr = 0, gy = 0; |
2160 |
for (; r < end_row && r->enabled_p; ++r) |
for (; r <= end_row && r->enabled_p; ++r) |
2161 |
if (r->y + r->height > y) |
if (r->y + r->height > y) |
2162 |
{ |
{ |
2163 |
gr = r; gy = r->y; |
gr = r; gy = r->y; |