/usr/share/nodejs/codemirror/src/edit
NameSizeModeActions
CodeMirror.js86230644editdlrm
commands.js75020644editdlrm
deleteNearSelection.js10580644editdlrm
drop_events.js51340644editdlrm
fromTextArea.js19860644editdlrm
global_events.js14480644editdlrm
key_events.js55070644editdlrm
legacy.js25830644editdlrm
main.js20720644editdlrm
methods.js222420644editdlrm
mouse_events.js159740644editdlrm
options.js72260644editdlrm
utils.js2700644editdlrm
Edit: /usr/share/nodejs/codemirror/src/edit/global_events.js (1448B)
import { onBlur } from "../display/focus.js" import { on } from "../util/event.js" // These must be handled carefully, because naively registering a // handler for each editor will cause the editors to never be // garbage collected. function forEachCodeMirror(f) { if (!document.getElementsByClassName) return let byClass = document.getElementsByClassName("CodeMirror"), editors = [] for (let i = 0; i < byClass.length; i++) { let cm = byClass[i].CodeMirror if (cm) editors.push(cm) } if (editors.length) editors[0].operation(() => { for (let i = 0; i < editors.length; i++) f(editors[i]) }) } let globalsRegistered = false export function ensureGlobalHandlers() { if (globalsRegistered) return registerGlobalHandlers() globalsRegistered = true } function registerGlobalHandlers() { // When the window resizes, we need to refresh active editors. let resizeTimer on(window, "resize", () => { if (resizeTimer == null) resizeTimer = setTimeout(() => { resizeTimer = null forEachCodeMirror(onResize) }, 100) }) // When the window loses focus, we want to show the editor as blurred on(window, "blur", () => forEachCodeMirror(onBlur)) } // Called when the window resizes function onResize(cm) { let d = cm.display // Might be a text scaling operation, clear size caches. d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null d.scrollbarsClipped = false cm.setSize() }