diff options
| author | Eli Zaretskii | 2000-07-23 13:03:16 +0000 |
|---|---|---|
| committer | Eli Zaretskii | 2000-07-23 13:03:16 +0000 |
| commit | f0a4139c7685a1fc4d6390ce9f797d62ebafa5c6 (patch) | |
| tree | 5f82834b90a48c8327c542b6421fe3ff5f1786b4 | |
| parent | b2d305a89db9fa21feae76bccbde05a05f2c4e91 (diff) | |
| download | emacs-f0a4139c7685a1fc4d6390ce9f797d62ebafa5c6.tar.gz emacs-f0a4139c7685a1fc4d6390ce9f797d62ebafa5c6.zip | |
(IT_note_mouse_highlight): Process overlays in the
correct order of priority. If help echo was found in an overlay,
use that overlay as the object in which the help echo was found.
| -rw-r--r-- | src/msdos.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/msdos.c b/src/msdos.c index 3e6dbf236de..8ec5a21faf7 100644 --- a/src/msdos.c +++ b/src/msdos.c | |||
| @@ -1537,6 +1537,7 @@ IT_note_mouse_highlight (struct frame *f, int x, int y) | |||
| 1537 | noverlays = overlays_at (pos, 0, &overlay_vec, &len, NULL, NULL); | 1537 | noverlays = overlays_at (pos, 0, &overlay_vec, &len, NULL, NULL); |
| 1538 | } | 1538 | } |
| 1539 | 1539 | ||
| 1540 | /* Sort overlays into increasing priority order. */ | ||
| 1540 | noverlays = sort_overlays (overlay_vec, noverlays, w); | 1541 | noverlays = sort_overlays (overlay_vec, noverlays, w); |
| 1541 | 1542 | ||
| 1542 | /* Check mouse-face highlighting. */ | 1543 | /* Check mouse-face highlighting. */ |
| @@ -1554,7 +1555,7 @@ IT_note_mouse_highlight (struct frame *f, int x, int y) | |||
| 1554 | 1555 | ||
| 1555 | /* Find highest priority overlay that has a mouse-face prop. */ | 1556 | /* Find highest priority overlay that has a mouse-face prop. */ |
| 1556 | overlay = Qnil; | 1557 | overlay = Qnil; |
| 1557 | for (i = 0; i < noverlays; i++) | 1558 | for (i = noverlays - 1; i >= 0; --i) |
| 1558 | { | 1559 | { |
| 1559 | mouse_face = Foverlay_get (overlay_vec[i], Qmouse_face); | 1560 | mouse_face = Foverlay_get (overlay_vec[i], Qmouse_face); |
| 1560 | if (!NILP (mouse_face)) | 1561 | if (!NILP (mouse_face)) |
| @@ -1638,14 +1639,17 @@ IT_note_mouse_highlight (struct frame *f, int x, int y) | |||
| 1638 | 1639 | ||
| 1639 | /* Check overlays first. */ | 1640 | /* Check overlays first. */ |
| 1640 | help = Qnil; | 1641 | help = Qnil; |
| 1641 | for (i = 0; i < noverlays && NILP (help); ++i) | 1642 | for (i = noverlays - 1; i >= 0 && NILP (help); --i) |
| 1642 | help = Foverlay_get (overlay_vec[i], Qhelp_echo); | 1643 | { |
| 1644 | overlay = overlay_vec[i]; | ||
| 1645 | help = Foverlay_get (overlay, Qhelp_echo); | ||
| 1646 | } | ||
| 1643 | 1647 | ||
| 1644 | if (!NILP (help)) | 1648 | if (!NILP (help)) |
| 1645 | { | 1649 | { |
| 1646 | help_echo = help; | 1650 | help_echo = help; |
| 1647 | help_echo_window = window; | 1651 | help_echo_window = window; |
| 1648 | help_echo_object = w->buffer; | 1652 | help_echo_object = overlay; |
| 1649 | help_echo_pos = pos; | 1653 | help_echo_pos = pos; |
| 1650 | } | 1654 | } |
| 1651 | /* Try text properties. */ | 1655 | /* Try text properties. */ |