From 6b91861333edd51848aa927c9b22d4ef431c2d01 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Fri, 28 Jan 2011 15:30:38 -0500 Subject: [PATCH] Fix text pos part of lispy positions for right fringe clicks (Bug#7839). * src/keyboard.c (make_lispy_position): For clicks on right fringe or margin, compute text position using the X coordinate relative to the left of the text area (Bug#7839). --- src/ChangeLog | 6 ++++++ src/keyboard.c | 8 ++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 5af18f38877..e4eb78f7f01 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2011-01-28 Chong Yidong + + * keyboard.c (make_lispy_position): For clicks on right fringe or + margin, compute text position using the X coordinate relative to + the left of the text area (Bug#7839). + 2011-01-28 Kenichi Handa * ftfont.c (ftfont_spec_pattern): Check each extra property diff --git a/src/keyboard.c b/src/keyboard.c index 8ae6eb9b29a..7a5185d43da 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -5153,8 +5153,12 @@ make_lispy_position (struct frame *f, Lisp_Object x, Lisp_Object y, int width2, height2; /* The pixel X coordinate passed to buffer_posn_from_coords is the X coordinate relative to the text area for - text-area clicks, zero otherwise. */ - int x2 = (part == ON_TEXT) ? xret : 0; + text-area and right-margin clicks, zero otherwise. */ + int x2 + = (part == ON_TEXT) ? x2 + : (part == ON_RIGHT_FRINGE || part == ON_RIGHT_MARGIN) + ? (XINT (x) - window_box_left (w, TEXT_AREA)) + : 0; int y2 = wy; string2 = buffer_posn_from_coords (w, &x2, &y2, &p, -- 2.39.2