@@ -234,18 +234,17 @@ function singleRect(object, bias) {
234
234
// : (EditorView, number) → {left: number, top: number, right: number, bottom: number}
235
235
// Given a position in the document model, get a bounding box of the
236
236
// character at that position, relative to the window.
237
- export function coordsAtPos ( view , pos ) {
237
+ export function coordsAtPos ( view , pos , end = false ) {
238
238
let { node, offset} = view . docView . domFromPos ( pos )
239
239
let side , rect
240
240
if ( node . nodeType == 3 ) {
241
- if ( offset < node . nodeValue . length ) {
241
+ if ( end && offset < node . nodeValue . length ) {
242
+ rect = singleRect ( textRange ( node , Math . max ( offset - 2 , 0 ) , offset - 1 ) , 1 )
243
+ side = "right"
244
+ } else if ( offset < node . nodeValue . length ) {
242
245
rect = singleRect ( textRange ( node , offset , offset + 1 ) , - 1 )
243
246
side = "left"
244
247
}
245
- if ( ( ! rect || rect . left == rect . right ) && offset ) {
246
- rect = singleRect ( textRange ( node , offset - 1 , offset ) , 1 )
247
- side = "right"
248
- }
249
248
} else if ( node . firstChild ) {
250
249
if ( offset < node . childNodes . length ) {
251
250
let child = node . childNodes [ offset ]
0 commit comments