4049 |
extern Lisp_Object do_mouse_tracking; |
extern Lisp_Object do_mouse_tracking; |
4050 |
#if GLYPH_DEBUG |
#if GLYPH_DEBUG |
4051 |
struct frame *f = XFRAME (WINDOW_FRAME (w)); |
struct frame *f = XFRAME (WINDOW_FRAME (w)); |
|
extern struct frame *updating_frame; |
|
4052 |
#endif |
#endif |
4053 |
|
|
4054 |
/* Check that W's frame doesn't have glyph matrices. */ |
/* Check that W's frame doesn't have glyph matrices. */ |
4338 |
first `p' in the current row. If we would start |
first `p' in the current row. If we would start |
4339 |
writing glyphs there, we wouldn't erase the lbearing |
writing glyphs there, we wouldn't erase the lbearing |
4340 |
of the `p'. The rest of the lbearing problem is then |
of the `p'. The rest of the lbearing problem is then |
4341 |
taken care of by x_draw_glyphs. */ |
taken care of by draw_glyphs. */ |
4342 |
if (overlapping_glyphs_p |
if (overlapping_glyphs_p |
4343 |
&& i > 0 |
&& i > 0 |
4344 |
&& i < current_row->used[TEXT_AREA] |
&& i < current_row->used[TEXT_AREA] |
5724 |
the string returned. */ |
the string returned. */ |
5725 |
|
|
5726 |
Lisp_Object |
Lisp_Object |
5727 |
mode_line_string (w, x, y, mode_line_p, charpos) |
mode_line_string (w, x, y, part, charpos) |
5728 |
struct window *w; |
struct window *w; |
5729 |
int x, y, mode_line_p; |
int x, y; |
5730 |
|
enum window_part part; |
5731 |
int *charpos; |
int *charpos; |
5732 |
{ |
{ |
5733 |
struct glyph_row *row; |
struct glyph_row *row; |
5736 |
int x0; |
int x0; |
5737 |
Lisp_Object string = Qnil; |
Lisp_Object string = Qnil; |
5738 |
|
|
5739 |
if (mode_line_p) |
if (part == ON_MODE_LINE) |
5740 |
row = MATRIX_MODE_LINE_ROW (w->current_matrix); |
row = MATRIX_MODE_LINE_ROW (w->current_matrix); |
5741 |
else |
else |
5742 |
row = MATRIX_HEADER_LINE_ROW (w->current_matrix); |
row = MATRIX_HEADER_LINE_ROW (w->current_matrix); |
5772 |
the string returned. */ |
the string returned. */ |
5773 |
|
|
5774 |
Lisp_Object |
Lisp_Object |
5775 |
marginal_area_string (w, x, y, area, charpos) |
marginal_area_string (w, x, y, part, charpos) |
5776 |
struct window *w; |
struct window *w; |
5777 |
int x, y; |
int x, y; |
5778 |
int area; |
enum window_part part; |
5779 |
int *charpos; |
int *charpos; |
5780 |
{ |
{ |
5781 |
struct glyph_row *row = w->current_matrix->rows; |
struct glyph_row *row = w->current_matrix->rows; |
5782 |
struct glyph *glyph, *end; |
struct glyph *glyph, *end; |
5783 |
int x0, i, wy = y; |
int x0, i, wy = y; |
5784 |
|
int area; |
5785 |
Lisp_Object string = Qnil; |
Lisp_Object string = Qnil; |
5786 |
|
|
5787 |
if (area == 6) |
if (part == ON_LEFT_MARGIN) |
5788 |
area = LEFT_MARGIN_AREA; |
area = LEFT_MARGIN_AREA; |
5789 |
else if (area == 7) |
else if (part == ON_RIGHT_MARGIN) |
5790 |
area = RIGHT_MARGIN_AREA; |
area = RIGHT_MARGIN_AREA; |
5791 |
else |
else |
5792 |
abort (); |
abort (); |