mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-19 10:22:27 +00:00
(construct_menu_click, construct_mouse_click):
Use XSET when setting result->x and result->y. (note_mouse_highlight): Use the value from sort_overlays. Make the window's buffer current temporarily. window_end_pos is relative to Z, not ZV.
This commit is contained in:
parent
a9c90b7c24
commit
09fe4c319e
18
src/xterm.c
18
src/xterm.c
@ -1832,8 +1832,8 @@ construct_mouse_click (result, event, f)
|
||||
XFASTINT (result->x) = column;
|
||||
XFASTINT (result->y) = row;
|
||||
#endif
|
||||
XFASTINT (result->x) = event->x;
|
||||
XFASTINT (result->y) = event->y;
|
||||
XSET (result->x, Lisp_Int, event->x);
|
||||
XSET (result->y, Lisp_Int, event->y);
|
||||
XSET (result->frame_or_window, Lisp_Frame, f);
|
||||
}
|
||||
}
|
||||
@ -1856,8 +1856,8 @@ construct_menu_click (result, event, f)
|
||||
? up_modifier
|
||||
: down_modifier));
|
||||
|
||||
XFASTINT (result->x) = event->x;
|
||||
XSETINT (result->y, -1);
|
||||
XSET (result->x, Lisp_Int, event->x);
|
||||
XSET (result->y, Lisp_Int, -1);
|
||||
XSET (result->frame_or_window, Lisp_Frame, f);
|
||||
}
|
||||
|
||||
@ -1965,6 +1965,11 @@ note_mouse_highlight (f, x, y)
|
||||
Lisp_Object *overlay_vec;
|
||||
int len, noverlays, ignor1;
|
||||
|
||||
/* Make the window's buffer temporarily current for
|
||||
overlays_at and compute_char_face. */
|
||||
struct buffer *obuf = current_buffer;
|
||||
current_buffer = XBUFFER (w->buffer);
|
||||
|
||||
/* Yes. Clear the display of the old active region, if any. */
|
||||
clear_mouse_face ();
|
||||
|
||||
@ -1977,7 +1982,7 @@ note_mouse_highlight (f, x, y)
|
||||
/* Put all the overlays we want in a vector in overlay_vec.
|
||||
Store the length in len. */
|
||||
noverlays = overlays_at (XINT (pos), 1, &overlay_vec, &len, &ignor1);
|
||||
sort_overlays (overlay_vec, noverlays, w);
|
||||
noverlays = sort_overlays (overlay_vec, noverlays, w);
|
||||
|
||||
/* Find the highest priority overlay that has a mouse-face prop. */
|
||||
overlay = Qnil;
|
||||
@ -2025,7 +2030,7 @@ note_mouse_highlight (f, x, y)
|
||||
|
||||
beginning = Fmarker_position (w->start);
|
||||
XSET (end, Lisp_Int,
|
||||
(BUF_ZV (XBUFFER (w->buffer))
|
||||
(BUF_Z (XBUFFER (w->buffer))
|
||||
- XFASTINT (w->window_end_pos)));
|
||||
before
|
||||
= Fprevious_single_property_change (make_number (pos + 1),
|
||||
@ -2045,6 +2050,7 @@ note_mouse_highlight (f, x, y)
|
||||
/* Display it as active. */
|
||||
show_mouse_face (1);
|
||||
}
|
||||
current_buffer = obuf;
|
||||
}
|
||||
else if (pos <= 0)
|
||||
clear_mouse_face ();
|
||||
|
Loading…
Reference in New Issue
Block a user