MCPcopy Create free account
hub / github.com/breck7/scroll / leftButtonStartDrag

Function leftButtonStartDrag

external/.scrollLibs.js:10107–10160  ·  view source on GitHub ↗
(cm, event, pos, behavior)

Source from the content-addressed store, hash-verified

10105 // Start a text drag. When it ends, see if any dragging actually
10106 // happen, and treat as a click if it didn't.
10107 function leftButtonStartDrag(cm, event, pos, behavior) {
10108 var display = cm.display,
10109 moved = false
10110 var dragEnd = operation(cm, function (e) {
10111 if (webkit) {
10112 display.scroller.draggable = false
10113 }
10114 cm.state.draggingText = false
10115 off(display.wrapper.ownerDocument, "mouseup", dragEnd)
10116 off(display.wrapper.ownerDocument, "mousemove", mouseMove)
10117 off(display.scroller, "dragstart", dragStart)
10118 off(display.scroller, "drop", dragEnd)
10119 if (!moved) {
10120 e_preventDefault(e)
10121 if (!behavior.addNew) {
10122 extendSelection(cm.doc, pos, null, null, behavior.extend)
10123 }
10124 // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)
10125 if (webkit || (ie && ie_version == 9)) {
10126 setTimeout(function () {
10127 display.wrapper.ownerDocument.body.focus()
10128 display.input.focus()
10129 }, 20)
10130 } else {
10131 display.input.focus()
10132 }
10133 }
10134 })
10135 var mouseMove = function (e2) {
10136 moved = moved || Math.abs(event.clientX - e2.clientX) + Math.abs(event.clientY - e2.clientY) >= 10
10137 }
10138 var dragStart = function () {
10139 return (moved = true)
10140 }
10141 // Let the drag handler handle this.
10142 if (webkit) {
10143 display.scroller.draggable = true
10144 }
10145 cm.state.draggingText = dragEnd
10146 dragEnd.copy = !behavior.moveOnDrag
10147 // IE's approach to draggable
10148 if (display.scroller.dragDrop) {
10149 display.scroller.dragDrop()
10150 }
10151 on(display.wrapper.ownerDocument, "mouseup", dragEnd)
10152 on(display.wrapper.ownerDocument, "mousemove", mouseMove)
10153 on(display.scroller, "dragstart", dragStart)
10154 on(display.scroller, "drop", dragEnd)
10155
10156 delayBlurEvent(cm)
10157 setTimeout(function () {
10158 return display.input.focus()
10159 }, 20)
10160 }
10161
10162 function rangeForUnit(cm, pos, unit) {
10163 if (unit == "char") {

Callers 1

leftButtonDownFunction · 0.85

Calls 6

operationFunction · 0.85
offFunction · 0.85
e_preventDefaultFunction · 0.85
extendSelectionFunction · 0.85
delayBlurEventFunction · 0.85
onFunction · 0.70

Tested by

no test coverage detected