]> git.eshelyaron.com Git - emacs.git/commitdiff
* src/frame.c (Fmouse_pixel_position): Call Vmouse_position_function.
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 9 Oct 2014 13:50:10 +0000 (09:50 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Thu, 9 Oct 2014 13:50:10 +0000 (09:50 -0400)
Fixes: debbugs:18638
src/ChangeLog
src/frame.c

index c6d78a5e8d185e0a6b97e9b257e6aea5ddc5b447..63e0e728fee5cce5e985c2f08f4994a035f4efd1 100644 (file)
@@ -1,3 +1,8 @@
+2014-10-09  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * frame.c (Fmouse_pixel_position): Call Vmouse_position_function
+       (bug#18638).
+
 2014-10-08  K. Handa  <handa@gnu.org>
 
        * coding.c (detect_coding_iso_2022): Set coding->rejected
index 35fd190ba2847cfe68278619be2cb0283bc64580..e894d218df7e939014bd16dbafde041e40ebbff9 100644 (file)
@@ -1583,7 +1583,8 @@ and nil for X and Y.  */)
 {
   struct frame *f;
   Lisp_Object lispy_dummy;
-  Lisp_Object x, y;
+  Lisp_Object x, y, retval;
+  struct gcpro gcpro1;
 
   f = SELECTED_FRAME ();
   x = y = Qnil;
@@ -1600,7 +1601,11 @@ and nil for X and Y.  */)
     }
 
   XSETFRAME (lispy_dummy, f);
-  return Fcons (lispy_dummy, Fcons (x, y));
+  retval = Fcons (lispy_dummy, Fcons (x, y));
+  GCPRO1 (retval);
+  if (!NILP (Vmouse_position_function))
+    retval = call1 (Vmouse_position_function, retval);
+  RETURN_UNGCPRO (retval);
 }
 
 DEFUN ("set-mouse-position", Fset_mouse_position, Sset_mouse_position, 3, 3, 0,
@@ -4662,8 +4667,8 @@ is visible.  In this case you can not overscroll.  */);
 
   DEFVAR_LISP ("mouse-position-function", Vmouse_position_function,
               doc: /* If non-nil, function to transform normal value of `mouse-position'.
-`mouse-position' calls this function, passing its usual return value as
-argument, and returns whatever this function returns.
+`mouse-position' and `mouse-pixel-position' call this function, passing their
+usual return value as argument, and return whatever this function returns.
 This abnormal hook exists for the benefit of packages like `xt-mouse.el'
 which need to do mouse handling at the Lisp level.  */);
   Vmouse_position_function = Qnil;