I tried, but could not reproduce the situation where the cursor shape
is wrong. I'm sure it is timing related, i.e. events not sent or
received when expected to.
So, it is probably a bug in the (old) version of Xfree that I'm using,
and it looks like the bug is fixed in later versions.
I tried to add an explicit call to note_mouse_highlight after the
call to XWarpPointer, and it definitely has a positive effect,
but even with that change, the pointer shape ends up wrong in
some cases.
I'm not sure how important it is to fix this, but there is
a patch which works for me -- of course a similar change
is probably needed in x_set_mouse_pixel_position.
*** xterm.c 10 May 2006 16:58:38 +0200 1.910
--- xterm.c 11 May 2006 11:52:27 +0200
***************
*** 226,231 ****
--- 226,233 ----
static unsigned long ignore_next_mouse_click_timeout;
+ static int ignore_next_motion_event;
+
/* Mouse movement.
Formerly, we used PointerMotionHintMask (in standard_event_mask)
***************
*** 6543,6548 ****
--- 6545,6556 ----
case MotionNotify:
{
+ if (ignore_next_motion_event)
+ {
+ ignore_next_motion_event = 0;
+ goto OTHER;
+ }
+
previous_help_echo_string = help_echo_string;
help_echo_string = Qnil;
***************
*** 8453,8458 ****
--- 8461,8471 ----
XWarpPointer (FRAME_X_DISPLAY (f), None, FRAME_X_WINDOW (f),
0, 0, 0, 0, pix_x, pix_y);
+
+ last_mouse_motion_event.x = pix_x;
+ last_mouse_motion_event.y = pix_y;
+ note_mouse_movement (f, &last_mouse_motion_event);
+ ignore_next_motion_event = 1;
UNBLOCK_INPUT;
}
***************
*** 10795,10800 ****
--- 10808,10814 ----
last_tool_bar_item = -1;
any_help_event_p = 0;
ignore_next_mouse_click_timeout = 0;
+ ignore_next_motion_event = 0;
#ifdef HAVE_X_SM
x_session_initialized = 0;
#endif
--
Kim F. Storm <address@hidden> http://www.cua.dk
_______________________________________________
Emacs-devel mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/emacs-devel