]> git.eshelyaron.com Git - emacs.git/commitdiff
(IT_note_mouse_highlight): Process overlays in the
authorEli Zaretskii <eliz@gnu.org>
Sun, 23 Jul 2000 13:03:16 +0000 (13:03 +0000)
committerEli Zaretskii <eliz@gnu.org>
Sun, 23 Jul 2000 13:03:16 +0000 (13:03 +0000)
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.

src/msdos.c

index 3e6dbf236de88b25d6e01ea64fcb75581711f944..8ec5a21faf798a341f50e054aafab4e9602ad3b3 100644 (file)
@@ -1537,6 +1537,7 @@ IT_note_mouse_highlight (struct frame *f, int x, int y)
            noverlays = overlays_at (pos, 0, &overlay_vec, &len, NULL, NULL);
          }
          
+       /* Sort overlays into increasing priority order.  */
        noverlays = sort_overlays (overlay_vec, noverlays, w);
 
        /* Check mouse-face highlighting.  */
@@ -1554,7 +1555,7 @@ IT_note_mouse_highlight (struct frame *f, int x, int y)
 
            /* Find highest priority overlay that has a mouse-face prop.  */
            overlay = Qnil;
-           for (i = 0; i < noverlays; i++)
+           for (i = noverlays - 1; i >= 0; --i)
              {
                mouse_face = Foverlay_get (overlay_vec[i], Qmouse_face);
                if (!NILP (mouse_face))
@@ -1638,14 +1639,17 @@ IT_note_mouse_highlight (struct frame *f, int x, int y)
 
          /* Check overlays first.  */
          help = Qnil;
-         for (i = 0; i < noverlays && NILP (help); ++i)
-           help = Foverlay_get (overlay_vec[i], Qhelp_echo); 
+         for (i = noverlays - 1; i >= 0 && NILP (help); --i)
+           {
+             overlay = overlay_vec[i];
+             help = Foverlay_get (overlay, Qhelp_echo);
+           }
            
          if (!NILP (help))
            {
              help_echo = help;
              help_echo_window = window;
-             help_echo_object = w->buffer;
+             help_echo_object = overlay;
              help_echo_pos = pos;
            }
          /* Try text properties.  */