21263 |
string = mode_line_string (w, area, &x, &y, &charpos, |
string = mode_line_string (w, area, &x, &y, &charpos, |
21264 |
&object, &dx, &dy, &width, &height); |
&object, &dx, &dy, &width, &height); |
21265 |
|
|
21266 |
row = (area == ON_MODE_LINE)? |
row = (area == ON_MODE_LINE |
21267 |
MATRIX_MODE_LINE_ROW (w->current_matrix): |
? MATRIX_MODE_LINE_ROW (w->current_matrix) |
21268 |
MATRIX_HEADER_LINE_ROW(w->current_matrix); |
: MATRIX_HEADER_LINE_ROW (w->current_matrix)); |
21269 |
|
|
21270 |
/* Find glyph */ |
/* Find glyph */ |
21271 |
if (row->mode_line_p && row->enabled_p) |
if (row->mode_line_p && row->enabled_p) |
21379 |
if (clear_mouse_face (dpyinfo)) |
if (clear_mouse_face (dpyinfo)) |
21380 |
cursor = No_Cursor; |
cursor = No_Cursor; |
21381 |
|
|
21382 |
b = Fprevious_single_property_change(make_number (charpos + 1), |
b = Fprevious_single_property_change (make_number (charpos + 1), |
21383 |
Qmouse_face, string, Qnil); |
Qmouse_face, string, Qnil); |
21384 |
if (NILP (b)) |
if (NILP (b)) |
21385 |
b = make_number (0); |
b = make_number (0); |
21386 |
|
|
21397 |
The internal string is an element of the structures. |
The internal string is an element of the structures. |
21398 |
The displayed string is the flatten string. */ |
The displayed string is the flatten string. */ |
21399 |
for (tmp_glyph = glyph - 1, gpos = 0; |
for (tmp_glyph = glyph - 1, gpos = 0; |
21400 |
tmp_glyph->charpos >= XINT(b); |
tmp_glyph->charpos >= XINT (b); |
21401 |
tmp_glyph--, gpos++) |
tmp_glyph--, gpos++) |
21402 |
{ |
{ |
21403 |
if (tmp_glyph->object != glyph->object) |
if (tmp_glyph->object != glyph->object) |
21410 |
GSEQ_LENGTH is different from SCHARS (STRING). |
GSEQ_LENGTH is different from SCHARS (STRING). |
21411 |
SCHARS (STRING) returns the length of the internal string. */ |
SCHARS (STRING) returns the length of the internal string. */ |
21412 |
for (tmp_glyph = glyph, gseq_length = gpos; |
for (tmp_glyph = glyph, gseq_length = gpos; |
21413 |
tmp_glyph->charpos < XINT(e); |
tmp_glyph->charpos < XINT (e); |
21414 |
tmp_glyph++, gseq_length++) |
tmp_glyph++, gseq_length++) |
21415 |
{ |
{ |
21416 |
if (tmp_glyph->object != glyph->object) |
if (tmp_glyph->object != glyph->object) |
21422 |
total_pixel_width += tmp_glyph->pixel_width; |
total_pixel_width += tmp_glyph->pixel_width; |
21423 |
|
|
21424 |
dpyinfo->mouse_face_beg_col = (x - gpos); |
dpyinfo->mouse_face_beg_col = (x - gpos); |
21425 |
dpyinfo->mouse_face_beg_row = (area == ON_MODE_LINE)? |
dpyinfo->mouse_face_beg_row = (area == ON_MODE_LINE |
21426 |
(w->current_matrix)->nrows - 1: |
? (w->current_matrix)->nrows - 1 |
21427 |
0; |
: 0); |
21428 |
|
|
21429 |
dpyinfo->mouse_face_beg_x = original_x_pixel - (total_pixel_width + dx); |
dpyinfo->mouse_face_beg_x = original_x_pixel - (total_pixel_width + dx); |
21430 |
dpyinfo->mouse_face_beg_y = 0; |
dpyinfo->mouse_face_beg_y = 0; |
21438 |
dpyinfo->mouse_face_past_end = 0; |
dpyinfo->mouse_face_past_end = 0; |
21439 |
dpyinfo->mouse_face_window = window; |
dpyinfo->mouse_face_window = window; |
21440 |
|
|
21441 |
dpyinfo->mouse_face_face_id = face_at_string_position(w, string, |
dpyinfo->mouse_face_face_id = face_at_string_position (w, string, |
21442 |
charpos, |
charpos, |
21443 |
0, 0, 0, &ignore, |
0, 0, 0, &ignore, |
21444 |
glyph->face_id, 1); |
glyph->face_id, 1); |
21445 |
show_mouse_face (dpyinfo, DRAW_MOUSE_FACE); |
show_mouse_face (dpyinfo, DRAW_MOUSE_FACE); |
21446 |
} |
} |
21447 |
} |
} |