fullscreen.js 1.0 KB

123456789101112131415161718192021222324252627282930
  1. (function() {
  2. "use strict";
  3. CodeMirror.defineOption("fullScreen", false, function(cm, val, old) {
  4. if (old == CodeMirror.Init) old = false;
  5. if (!old == !val) return;
  6. if (val) setFullscreen(cm);
  7. else setNormal(cm);
  8. });
  9. function setFullscreen(cm) {
  10. var wrap = cm.getWrapperElement();
  11. cm.state.fullScreenRestore = {scrollTop: window.pageYOffset, scrollLeft: window.pageXOffset,
  12. width: wrap.style.width, height: wrap.style.height};
  13. wrap.style.width = wrap.style.height = "";
  14. wrap.className += " CodeMirror-fullscreen";
  15. document.documentElement.style.overflow = "hidden";
  16. cm.refresh();
  17. }
  18. function setNormal(cm) {
  19. var wrap = cm.getWrapperElement();
  20. wrap.className = wrap.className.replace(/\s*CodeMirror-fullscreen\b/, "");
  21. document.documentElement.style.overflow = "";
  22. var info = cm.state.fullScreenRestore;
  23. wrap.style.width = info.width; wrap.style.height = info.height;
  24. window.scrollTo(info.scrollLeft, info.scrollTop);
  25. cm.refresh();
  26. }
  27. })();