aboutsummaryrefslogtreecommitdiffstats
path: root/src/keyboard.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/keyboard.c')
-rw-r--r--src/keyboard.c38
1 files changed, 27 insertions, 11 deletions
diff --git a/src/keyboard.c b/src/keyboard.c
index 786e97d7d89..4937cc445bd 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -5144,20 +5144,37 @@ make_lispy_position (f, x, y, time)
5144 &object, &dx, &dy, &width, &height); 5144 &object, &dx, &dy, &width, &height);
5145 if (STRINGP (string)) 5145 if (STRINGP (string))
5146 string_info = Fcons (string, make_number (charpos)); 5146 string_info = Fcons (string, make_number (charpos));
5147 if (part == ON_LEFT_MARGIN)
5148 wx = 0;
5149 else
5150 wx = window_box_right_offset (w, TEXT_AREA) - 1;
5151 }
5152 else if (part == ON_LEFT_FRINGE)
5153 {
5154 posn = Qleft_fringe;
5155 rx = 0;
5156 dx = wx;
5157 wx = (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w)
5158 ? 0
5159 : window_box_width (w, LEFT_MARGIN_AREA));
5160 dx -= wx;
5147 } 5161 }
5148 else if (part == ON_LEFT_FRINGE || part == ON_RIGHT_FRINGE) 5162 else if (part == ON_RIGHT_FRINGE)
5149 { 5163 {
5150 posn = (part == ON_LEFT_FRINGE) ? Qleft_fringe : Qright_fringe; 5164 posn = Qright_fringe;
5151 rx = 0; 5165 rx = 0;
5152 dx = wx; 5166 dx = wx;
5153 if (part == ON_RIGHT_FRINGE) 5167 wx = (window_box_width (w, LEFT_MARGIN_AREA)
5154 dx -= (window_box_width (w, LEFT_MARGIN_AREA) 5168 + window_box_width (w, TEXT_AREA)
5155 + window_box_width (w, TEXT_AREA) 5169 + (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w)
5156 + (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w) 5170 ? window_box_width (w, RIGHT_MARGIN_AREA)
5157 ? window_box_width (w, RIGHT_MARGIN_AREA) 5171 : 0));
5158 : 0)); 5172 dx -= wx;
5159 else if (!WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w)) 5173 }
5160 dx -= window_box_width (w, LEFT_MARGIN_AREA); 5174 else
5175 {
5176 /* Note: We have no special posn for part == ON_SCROLL_BAR. */
5177 wx = max (WINDOW_LEFT_MARGIN_WIDTH (w), wx);
5161 } 5178 }
5162 5179
5163 if (textpos < 0) 5180 if (textpos < 0)
@@ -5166,7 +5183,6 @@ make_lispy_position (f, x, y, time)
5166 struct display_pos p; 5183 struct display_pos p;
5167 int dx2, dy2; 5184 int dx2, dy2;
5168 int width2, height2; 5185 int width2, height2;
5169 wx = max (WINDOW_LEFT_MARGIN_WIDTH (w), wx);
5170 string2 = buffer_posn_from_coords (w, &wx, &wy, &p, 5186 string2 = buffer_posn_from_coords (w, &wx, &wy, &p,
5171 &object2, &dx2, &dy2, 5187 &object2, &dx2, &dy2,
5172 &width2, &height2); 5188 &width2, &height2);