21491 |
int total_pixel_width; |
int total_pixel_width; |
21492 |
int ignore; |
int ignore; |
21493 |
|
|
21494 |
|
int vpos, hpos; |
21495 |
if (clear_mouse_face (dpyinfo)) |
|
|
cursor = No_Cursor; |
|
|
|
|
21496 |
b = Fprevious_single_property_change (make_number (charpos + 1), |
b = Fprevious_single_property_change (make_number (charpos + 1), |
21497 |
Qmouse_face, string, Qnil); |
Qmouse_face, string, Qnil); |
21498 |
if (NILP (b)) |
if (NILP (b)) |
21535 |
for (tmp_glyph = glyph - gpos; tmp_glyph != glyph; tmp_glyph++) |
for (tmp_glyph = glyph - gpos; tmp_glyph != glyph; tmp_glyph++) |
21536 |
total_pixel_width += tmp_glyph->pixel_width; |
total_pixel_width += tmp_glyph->pixel_width; |
21537 |
|
|
21538 |
dpyinfo->mouse_face_beg_col = (x - gpos); |
/* Pre calculation of re-rendering position */ |
21539 |
dpyinfo->mouse_face_beg_row = (area == ON_MODE_LINE |
vpos = (x - gpos); |
21540 |
? (w->current_matrix)->nrows - 1 |
hpos = (area == ON_MODE_LINE |
21541 |
: 0); |
? (w->current_matrix)->nrows - 1 |
21542 |
|
: 0); |
21543 |
|
|
21544 |
|
/* If the re-rendering position is included in the last |
21545 |
|
re-rendering area, we should do nothing. */ |
21546 |
|
if ( window == dpyinfo->mouse_face_window |
21547 |
|
&& dpyinfo->mouse_face_beg_col <= vpos |
21548 |
|
&& vpos < dpyinfo->mouse_face_end_col |
21549 |
|
&& dpyinfo->mouse_face_beg_row == hpos ) |
21550 |
|
return; |
21551 |
|
|
21552 |
|
if (clear_mouse_face (dpyinfo)) |
21553 |
|
cursor = No_Cursor; |
21554 |
|
|
21555 |
|
dpyinfo->mouse_face_beg_col = vpos; |
21556 |
|
dpyinfo->mouse_face_beg_row = hpos; |
21557 |
|
|
21558 |
dpyinfo->mouse_face_beg_x = original_x_pixel - (total_pixel_width + dx); |
dpyinfo->mouse_face_beg_x = original_x_pixel - (total_pixel_width + dx); |
21559 |
dpyinfo->mouse_face_beg_y = 0; |
dpyinfo->mouse_face_beg_y = 0; |
21560 |
|
|
21561 |
dpyinfo->mouse_face_end_col = (x - gpos) + gseq_length; |
dpyinfo->mouse_face_end_col = vpos + gseq_length; |
21562 |
dpyinfo->mouse_face_end_row = dpyinfo->mouse_face_beg_row; |
dpyinfo->mouse_face_end_row = dpyinfo->mouse_face_beg_row; |
21563 |
|
|
21564 |
dpyinfo->mouse_face_end_x = 0; |
dpyinfo->mouse_face_end_x = 0; |
21630 |
/* If we were displaying active text in another window, clear that. |
/* If we were displaying active text in another window, clear that. |
21631 |
Also clear if we move out of text area in same window. */ |
Also clear if we move out of text area in same window. */ |
21632 |
if (! EQ (window, dpyinfo->mouse_face_window) |
if (! EQ (window, dpyinfo->mouse_face_window) |
21633 |
|| (part != ON_TEXT && !NILP (dpyinfo->mouse_face_window))) |
|| (part != ON_TEXT && part != ON_MODE_LINE && part != ON_HEADER_LINE |
21634 |
|
&& !NILP (dpyinfo->mouse_face_window))) |
21635 |
clear_mouse_face (dpyinfo); |
clear_mouse_face (dpyinfo); |
21636 |
|
|
21637 |
/* Not on a window -> return. */ |
/* Not on a window -> return. */ |