PluginProbe
Smart Grid-Layout Design for Contact Form 7 / 4.5
Smart Grid-Layout Design for Contact Form 7 v4.5
4.18.0 4.17.0 3.2.0 3.2.1 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 4.0.0 4.0.1 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10 4.11 4.12 4.13 4.14 All 119 releases
cf7-grid-layout / assets / codemirror / addon / scroll / scrollpastend.js

scrollpastend.js in Smart Grid-Layout Design for Contact Form 7 4.5, at assets/codemirror/addon/scroll/scrollpastend.js

49 lines 1.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 // Distributed under an MIT license: http://codemirror.net/LICENSE
3
4 (function(mod) {
5 if (typeof exports == "object" && typeof module == "object") // CommonJS
6 mod(require("../../lib/codemirror"));
7 else if (typeof define == "function" && define.amd) // AMD
8 define(["../../lib/codemirror"], mod);
9 else // Plain browser env
10 mod(CodeMirror);
11 })(function(CodeMirror) {
12 "use strict";
13
14 CodeMirror.defineOption("scrollPastEnd", false, function(cm, val, old) {
15 if (old && old != CodeMirror.Init) {
16 cm.off("change", onChange);
17 cm.off("refresh", updateBottomMargin);
18 cm.display.lineSpace.parentNode.style.paddingBottom = "";
19 cm.state.scrollPastEndPadding = null;
20 }
21 if (val) {
22 cm.on("change", onChange);
23 cm.on("refresh", updateBottomMargin);
24 updateBottomMargin(cm);
25 }
26 });
27
28 function onChange(cm, change) {
29 if (CodeMirror.changeEnd(change).line == cm.lastLine())
30 updateBottomMargin(cm);
31 }
32
33 function updateBottomMargin(cm) {
34 var padding = "";
35 if (cm.lineCount() > 1) {
36 var totalH = cm.display.scroller.clientHeight - 30,
37 lastLineH = cm.getLineHandle(cm.lastLine()).height;
38 padding = (totalH - lastLineH) + "px";
39 }
40 if (cm.state.scrollPastEndPadding != padding) {
41 cm.state.scrollPastEndPadding = padding;
42 cm.display.lineSpace.parentNode.style.paddingBottom = padding;
43 cm.off("refresh", updateBottomMargin);
44 cm.setSize();
45 cm.on("refresh", updateBottomMargin);
46 }
47 }
48 });
49