     element = findNodeFromContainerAndOffset(domRange["#{side}Container"], domRange["#{side}Offset"])
 
     if tagName(element) is "br"
-      {left, bottom} = element.getBoundingClientRect()
-      x: left, y: bottom
+      if rect = getClientRectForElement(element) ? getClientRectForDOMRange(domRange, side)
+        x: rect.left, y: rect.bottom
     else
       element = makeMeasurementElement()
       domRange.collapse(false) if side is "end"

      data: trixMutable: true
      trixSerialize: false

  getDOMSelection = ->
    selection = window.getSelection()
    selection if selection.rangeCount > 0

    @setLocationRange([startLocation, endLocation])

  getClientRectAtLocationRange: (locationRange) ->
    if domRange = @createDOMRangeFromLocationRange(locationRange)
      getClientRectForDOMRange(domRange)

  locationIsCursorTarget: (location) ->
    [node, offset] = @findNodeAndOffsetFromLocation(location)
