General.Web/wwwroot/lib/codemirror-5.31.0/src/display/focus.js
(完整代码) 1KBimport { restartBlink } from "./selection"
import { webkit } from "../util/browser"
import { addClass, rmClass } from "../util/dom"
import { signal } from "../util/event"
export function ensureFocus(cm) {
if (!cm.state.focused) { cm.display.input.focus(); onFocus(cm) }
}
export function delayBlurEvent(cm) {
cm.state.delayingBlurEvent = true
setTimeout(() => { if (cm.state.delayingBlurEvent) {
cm.state.delayingBlurEvent = false
onBlur(cm)
} }, 100)
}
export function onFocus(cm, e) {
if (cm.state.delayingBlurEvent) cm.state.delayingBlurEvent = false
if (cm.options.readOnly == "nocursor") return
if (!cm.state.focused) {
signal(cm, "focus", cm, e)
cm.state.focused = true
addClass(cm.display.wrapper, "CodeMirror-focused")
// This test prevents this from firing when a context
// menu is closed (since the input reset would kill the
// select-all detection hack)
if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) {
cm.display.input.reset()
if (webkit) setTimeout(() => cm.display.input.reset(true), 20) // Issue #1730
}
cm.display.input.receivedFocus()
}
restartBlink(cm)
}
export function onBlur(cm, e) {
if (cm.state.delayingBlurEvent) return
if (cm.state.focused) {
signal(cm, "blur", cm, e)
cm.state.focused = false
rmClass(cm.display.wrapper, "CodeMirror-focused")
}
clearInterval(cm.display.blinker)
setTimeout(() => { if (!cm.state.focused) cm.display.shift = false }, 150)
}
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
