MCPcopy
hub / github.com/csev/py4e / updateDisplay

Function updateDisplay

tools/pythonauto/static/codemirror/codemirror.js:424–455  ·  view source on GitHub ↗
(cm, changes, viewPort, forced)

Source from the content-addressed store, hash-verified

422 // DISPLAY DRAWING
423
424 function updateDisplay(cm, changes, viewPort, forced) {
425 var oldFrom = cm.display.showingFrom, oldTo = cm.display.showingTo, updated;
426 var visible = visibleLines(cm.display, cm.doc, viewPort);
427 for (var first = true;; first = false) {
428 var oldWidth = cm.display.scroller.clientWidth;
429 if (!updateDisplayInner(cm, changes, visible, forced)) break;
430 updated = true;
431 changes = [];
432 updateSelection(cm);
433 updateScrollbars(cm);
434 if (first && cm.options.lineWrapping && oldWidth != cm.display.scroller.clientWidth) {
435 forced = true;
436 continue;
437 }
438 forced = false;
439
440 // Clip forced viewport to actual scrollable area
441 if (viewPort)
442 viewPort = Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight,
443 typeof viewPort == "number" ? viewPort : viewPort.top);
444 visible = visibleLines(cm.display, cm.doc, viewPort);
445 if (visible.from >= cm.display.showingFrom && visible.to <= cm.display.showingTo)
446 break;
447 }
448
449 if (updated) {
450 signalLater(cm, "update", cm);
451 if (cm.display.showingFrom != oldFrom || cm.display.showingTo != oldTo)
452 signalLater(cm, "viewportChange", cm, cm.display.showingFrom, cm.display.showingTo);
453 }
454 return updated;
455 }
456
457 // Uses a set of changes plus the current scroll position to
458 // determine which DOM updates have to be made, and makes the

Callers 3

endOperationFunction · 0.70
setScrollTopFunction · 0.70
onScrollWheelFunction · 0.70

Calls 5

visibleLinesFunction · 0.70
updateDisplayInnerFunction · 0.70
updateSelectionFunction · 0.70
updateScrollbarsFunction · 0.70
signalLaterFunction · 0.70

Tested by

no test coverage detected