avoid a scrollbar due to rounding errors
This commit is contained in:
parent
a5d2d96717
commit
81fa6b1e79
|
@ -21,6 +21,7 @@ function SectionsEditor() {
|
||||||
let INC_ID = 0; // an increment id that is used by various object to track the order
|
let INC_ID = 0; // an increment id that is used by various object to track the order
|
||||||
let sectionOrder = '';
|
let sectionOrder = '';
|
||||||
let headerOffset; // in compact mode the header is at the top so it reduces the available height
|
let headerOffset; // in compact mode the header is at the top so it reduces the available height
|
||||||
|
let cmExtrasHeight; // resize grip + borders
|
||||||
|
|
||||||
updateHeader();
|
updateHeader();
|
||||||
rerouteHotkeys.toggle(true); // enabled initially because we don't always focus a CodeMirror
|
rerouteHotkeys.toggle(true); // enabled initially because we don't always focus a CodeMirror
|
||||||
|
@ -138,13 +139,17 @@ function SectionsEditor() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (headerOffset == null) {
|
if (headerOffset == null) {
|
||||||
headerOffset = container.getBoundingClientRect().top + scrollY | 0;
|
headerOffset = Math.ceil(container.getBoundingClientRect().top + scrollY);
|
||||||
}
|
}
|
||||||
contentHeight += 9; // border & resize grip
|
if (cmExtrasHeight == null) {
|
||||||
|
cmExtrasHeight = $('.resize-grip', wrapper).offsetHeight + // grip
|
||||||
|
wrapper.offsetHeight - wrapper.clientHeight; // borders
|
||||||
|
}
|
||||||
|
contentHeight += cmExtrasHeight;
|
||||||
cm.off('update', resize);
|
cm.off('update', resize);
|
||||||
const cmHeight = wrapper.offsetHeight;
|
const cmHeight = wrapper.offsetHeight;
|
||||||
const appliesToHeight = Math.min(section.el.offsetHeight - cmHeight, window.innerHeight / 2);
|
const appliesToHeight = Math.min(section.el.offsetHeight - cmHeight, window.innerHeight / 2);
|
||||||
const maxHeight = (window.innerHeight - headerOffset) - appliesToHeight;
|
const maxHeight = Math.floor(window.innerHeight - headerOffset - appliesToHeight);
|
||||||
const fit = Math.min(contentHeight, maxHeight);
|
const fit = Math.min(contentHeight, maxHeight);
|
||||||
if (Math.abs(fit - cmHeight) > 1) {
|
if (Math.abs(fit - cmHeight) > 1) {
|
||||||
cm.setSize(null, fit);
|
cm.setSize(null, fit);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user