"Return a list of all frames.")
()
{
- return Fcopy_sequence (Vframe_list);
+ Lisp_Object frames;
+ frames = Fcopy_sequence (Vframe_list);
+#ifdef HAVE_WINDOW_SYSTEM
+ if (FRAMEP (tip_frame))
+ frames = Fdelq (tip_frame, frames);
+#endif
+ return frames;
}
/* Return the next frame in the frame list after FRAME.
If Emacs is running on a mouseless terminal or hasn't been programmed\n\
to read the mouse position, it returns the selected frame for FRAME\n\
and nil for X and Y.\n\
-Runs the abnormal hook `mouse-position-function' with the normal return\n\
-value as argument.")
+If `mouse-position-function' is non-nil, `mouse-position' calls it,\n\
+passing the normal return value to that function as an argument,\n\
+and returns whatever that function returns.")
()
{
FRAME_PTR f;
Vemacs_iconified = Qnil;
DEFVAR_LISP ("mouse-position-function", &Vmouse_position_function,
- "If non-nil, function applied to the normal result of `mouse-position'.\n\
-This abnormal hook exists for the benefit of packages like XTerm-mouse\n\
+ "If non-nil, function to transform normal value of `mouse-position'.\n\
+`mouse-position' calls this function, passing its usual return value as\n\
+argument, and returns whatever this function returns.\n\
+This abnormal hook exists for the benefit of packages like `xt-mouse.el'\n\
which need to do mouse handling at the Lisp level.");
Vmouse_position_function = Qnil;