>>>>> On Wed, 12 Oct 2005 15:42:31 +0200, [EMAIL PROTECTED] (Kim F. Storm) said:
> I think your change was pretty close to being ok. Here is something > which seems to work for me on X -- maybe you can install it and > adapt it to W32 and MAC if it works for you too. The same change seems to work for Mac, too. Thanks. I'm not sure about W32: it looks slightly different from others (help_echo_string is not cleared before note_mouse_movement is called). YAMAMOTO Mitsuharu [EMAIL PROTECTED] Index: src/macterm.c =================================================================== RCS file: /cvsroot/emacs/emacs/src/macterm.c,v retrieving revision 1.137 diff -c -r1.137 macterm.c *** src/macterm.c 12 Oct 2005 12:18:18 -0000 1.137 --- src/macterm.c 13 Oct 2005 08:04:17 -0000 *************** *** 4149,4155 **** static Point last_mouse_motion_position; static Lisp_Object last_mouse_motion_frame; ! static void note_mouse_movement (frame, pos) FRAME_PTR frame; Point *pos; --- 4149,4155 ---- static Point last_mouse_motion_position; static Lisp_Object last_mouse_motion_frame; ! static int note_mouse_movement (frame, pos) FRAME_PTR frame; Point *pos; *************** *** 4180,4198 **** rif->define_frame_cursor (frame, frame->output_data.mac->nontext_cursor); } } /* Has the mouse moved off the glyph it was on at the last sighting? */ ! else if (pos->h < last_mouse_glyph.left ! || pos->h >= last_mouse_glyph.right ! || pos->v < last_mouse_glyph.top ! || pos->v >= last_mouse_glyph.bottom) { frame->mouse_moved = 1; last_mouse_scroll_bar = Qnil; note_mouse_highlight (frame, pos->h, pos->v); /* Remember which glyph we're now on. */ remember_mouse_glyph (frame, pos->h, pos->v, &last_mouse_glyph); } } --- 4180,4201 ---- rif->define_frame_cursor (frame, frame->output_data.mac->nontext_cursor); } + return 1; } /* Has the mouse moved off the glyph it was on at the last sighting? */ ! if (pos->h < last_mouse_glyph.left ! || pos->h >= last_mouse_glyph.right ! || pos->v < last_mouse_glyph.top ! || pos->v >= last_mouse_glyph.bottom) { frame->mouse_moved = 1; last_mouse_scroll_bar = Qnil; note_mouse_highlight (frame, pos->h, pos->v); /* Remember which glyph we're now on. */ remember_mouse_glyph (frame, pos->h, pos->v, &last_mouse_glyph); + return 1; } + return 0; } *************** *** 10031,10038 **** er.where.h + 1, er.where.v + 1); #endif previous_help_echo_string = help_echo_string; ! help_echo_string = help_echo_object = help_echo_window = Qnil; ! help_echo_pos = -1; if (dpyinfo->grabbed && last_mouse_frame && FRAME_LIVE_P (last_mouse_frame)) --- 10034,10040 ---- er.where.h + 1, er.where.v + 1); #endif previous_help_echo_string = help_echo_string; ! help_echo_string = Qnil; if (dpyinfo->grabbed && last_mouse_frame && FRAME_LIVE_P (last_mouse_frame)) *************** *** 10091,10097 **** last_window=window; } ! note_mouse_movement (f, &mouse_pos); } } --- 10093,10100 ---- last_window=window; } ! if (!note_mouse_movement (f, &mouse_pos)) ! help_echo_string = previous_help_echo_string; } } _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel