Skip to content

Commit 7777dce

Browse files
committed
Make sure widgets are added to vertical scroll size
Closes #1148
1 parent 5af6bb0 commit 7777dce

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

lib/codemirror.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3608,7 +3608,7 @@ window.CodeMirror = (function() {
36083608

36093609
function widgetHeight(widget) {
36103610
if (widget.height != null) return widget.height;
3611-
if (!widget.node.parentNode)
3611+
if (!widget.node.parentNode || widget.node.parentNode.nodeType != 1)
36123612
removeChildrenAndAdd(widget.cm.display.measure, elt("div", [widget.node], null, "position: relative"));
36133613
return widget.height = widget.node.offsetHeight;
36143614
}
@@ -3619,8 +3619,12 @@ window.CodeMirror = (function() {
36193619
changeLine(cm, handle, function(line) {
36203620
(line.widgets || (line.widgets = [])).push(widget);
36213621
widget.line = line;
3622-
if (!lineIsHidden(line) || widget.showIfHidden)
3622+
if (!lineIsHidden(line) || widget.showIfHidden) {
3623+
var aboveVisible = heightAtLine(cm, line) < cm.display.scroller.scrollTop;
36233624
updateLineHeight(line, line.height + widgetHeight(widget));
3625+
if (aboveVisible)
3626+
setTimeout(function() {cm.display.scroller.scrollTop += widget.height;});
3627+
}
36243628
return true;
36253629
});
36263630
return widget;

0 commit comments

Comments
 (0)