From: Paul Eggert Date: Thu, 29 May 2014 04:47:01 +0000 (-0700) Subject: * frame.c, frame.h (frame_char_to_pixel_position) X-Git-Tag: emacs-25.0.90~2612^2~709^2~855 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=6b5d3a51723b463eaac49c4a5d3c96d7b5973a16;p=emacs.git * frame.c, frame.h (frame_char_to_pixel_position) (frame_set_mouse_position): Now static, and made private in frame.c rather than public in frame.h. --- diff --git a/src/ChangeLog b/src/ChangeLog index 1fe76c9c75f..a71d34209b2 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2014-05-29 Paul Eggert + + * frame.c, frame.h (frame_char_to_pixel_position) + (frame_set_mouse_position): Now static, and made private in + frame.c rather than public in frame.h. + 2014-05-28 Dmitry Antipov Refactor mouse positioning stuff to avoid code duplication. diff --git a/src/frame.c b/src/frame.c index 482e21bbfbc..1d5312b4758 100644 --- a/src/frame.c +++ b/src/frame.c @@ -1593,6 +1593,42 @@ and nil for X and Y. */) return Fcons (lispy_dummy, Fcons (x, y)); } +#ifdef HAVE_WINDOW_SYSTEM + +/* On frame F, convert character coordinates X and Y to pixel + coordinates *PIX_X and *PIX_Y. */ + +static void +frame_char_to_pixel_position (struct frame *f, int x, int y, + int *pix_x, int *pix_y) +{ + *pix_x = FRAME_COL_TO_PIXEL_X (f, x) + FRAME_COLUMN_WIDTH (f) / 2; + *pix_y = FRAME_LINE_TO_PIXEL_Y (f, y) + FRAME_LINE_HEIGHT (f) / 2; + + if (*pix_x < 0) + *pix_x = 0; + if (*pix_x > FRAME_PIXEL_WIDTH (f)) + *pix_x = FRAME_PIXEL_WIDTH (f); + + if (*pix_y < 0) + *pix_y = 0; + if (*pix_y > FRAME_PIXEL_HEIGHT (f)) + *pix_y = FRAME_PIXEL_HEIGHT (f); +} + +/* On frame F, reposition mouse pointer to character coordinates X and Y. */ + +static void +frame_set_mouse_position (struct frame *f, int x, int y) +{ + int pix_x, pix_y; + + frame_char_to_pixel_position (f, x, y, &pix_x, &pix_y); + frame_set_mouse_pixel_position (f, pix_x, pix_y); +} + +#endif /* HAVE_WINDOW_SYSTEM */ + DEFUN ("set-mouse-position", Fset_mouse_position, Sset_mouse_position, 3, 3, 0, doc: /* Move the mouse pointer to the center of character cell (X,Y) in FRAME. Coordinates are relative to the frame, not a window, diff --git a/src/frame.h b/src/frame.h index 60d3e3680f1..0ee97f0b3f3 100644 --- a/src/frame.h +++ b/src/frame.h @@ -1353,38 +1353,6 @@ x_set_bitmap_icon (struct frame *f) } #endif /* !HAVE_NS */ - -/* Convert character coordinates X and Y to pixel - coordinates PIX_X and PIX_Y on frame F. */ - -INLINE void -frame_char_to_pixel_position (struct frame *f, int x, int y, int *pix_x, int *pix_y) -{ - *pix_x = FRAME_COL_TO_PIXEL_X (f, x) + FRAME_COLUMN_WIDTH (f) / 2; - *pix_y = FRAME_LINE_TO_PIXEL_Y (f, y) + FRAME_LINE_HEIGHT (f) / 2; - - if (*pix_x < 0) - *pix_x = 0; - if (*pix_x > FRAME_PIXEL_WIDTH (f)) - *pix_x = FRAME_PIXEL_WIDTH (f); - - if (*pix_y < 0) - *pix_y = 0; - if (*pix_y > FRAME_PIXEL_HEIGHT (f)) - *pix_y = FRAME_PIXEL_HEIGHT (f); -} - -/* Reposition mouse pointer to character coordinates X and Y on frame F. */ - -INLINE -void frame_set_mouse_position (struct frame *f, int x, int y) -{ - int pix_x, pix_y; - - frame_char_to_pixel_position (f, x, y, &pix_x, &pix_y); - frame_set_mouse_pixel_position (f, pix_x, pix_y); -} - #endif /* HAVE_WINDOW_SYSTEM */ INLINE void