Commit 8547874a authored by Eli Zaretskii's avatar Eli Zaretskii
Browse files

Fix and document components of mouse event position.

 src/keyboard.c (make_lispy_position): Put a meaningful value in yret
 when the click is on the header or mode line.
 doc/lispref/commands.texi (Click Events): Document the values of X, Y and
 COL, ROW in the event's position, when the click is on the header or
 mode line, on the fringes, or in the margins.
parent f5462bae
2010-11-26 Eli Zaretskii <eliz@gnu.org>
* commands.texi (Click Events): Document the values of X, Y and
COL, ROW in the event's position, when the click is on the header
or mode line, on the fringes, or in the margins.
2010-11-17 Eli Zaretskii <eliz@gnu.org>
* customize.texi (Composite Types): Lower-case index entry.
......
......@@ -1285,8 +1285,12 @@ input stream. @xref{Key Sequence Input}.
@item @var{x}, @var{y}
These are the pixel coordinates of the click, relative to
the top left corner of @var{window}, which is @code{(0 . 0)}.
For the mode or header line, @var{y} does not have meaningful data.
For the vertical line, @var{x} does not have meaningful data.
For a click on text, these are relative to the top left corner of
the window's text area. For the mode or header line, they are
relative to the top left window edge. For fringes, margins, and the
vertical border, @var{x} does not have meaningful data. For fringes
and margins, @var{y} is relative to the bottom edge of the header
line.
@item @var{timestamp}
This is the time at which the event occurred, in milliseconds.
......@@ -1316,7 +1320,12 @@ the window.
@item @var{col}, @var{row}
These are the actual coordinates of the glyph under the @var{x},
@var{y} position, possibly padded with default character width
glyphs if @var{x} is beyond the last glyph on the line.
glyphs if @var{x} is beyond the last glyph on the line. For clicks on
the header or mode line, these are measured from the top left edge of
the header or mode line. For clicks on the fringes and on the
vertical border, these have no meaningful data. For clicks on the
margins, @var{col} is measured from the left edge of the margin area
and @var{row} is measured from the top of the margin area.
@item @var{image}
This is the image object on which the click occurred. It is either
......
2010-11-26 Eli Zaretskii <eliz@gnu.org>
* keyboard.c (make_lispy_position): Put a meaningful value in yret
when the click is on the header or mode line.
2010-11-25 Eli Zaretskii <eliz@gnu.org>
 
* xdisp.c (set_cursor_from_row): Don't forget to consider the
......
......@@ -5283,9 +5283,9 @@ make_lispy_position (struct frame *f, Lisp_Object x, Lisp_Object y,
xret = XINT (x) - window_box_left (w, TEXT_AREA);
yret = wy - WINDOW_HEADER_LINE_HEIGHT (w);
}
/* For mode line and header line clicks, return X relative to
the left window edge; ignore Y. Use mode_line_string to look
for a string on the click position. */
/* For mode line and header line clicks, return X, Y relative to
the left window edge. Use mode_line_string to look for a
string on the click position. */
else if (part == ON_MODE_LINE || part == ON_HEADER_LINE)
{
Lisp_Object string;
......@@ -5305,6 +5305,7 @@ make_lispy_position (struct frame *f, Lisp_Object x, Lisp_Object y,
? PT : XMARKER (w->pointm)->charpos;
xret = wx;
yret = wy;
}
/* For fringes and margins, Y is relative to the area's (and the
window's) top edge, while X is meaningless. */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment