>>>>> On Wed, 12 Oct 2005 12:15:37 +0900, YAMAMOTO Mitsuharu <[EMAIL >>>>> PROTECTED]> 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 [EMAIL PROTECTED] *** 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; _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel