+ handleDividerDrag() {
+ this.divider.addEventListener('pointerdown', event => {
+ const wrapRect = this.elem.getBoundingClientRect();
+ const moveListener = (event) => {
+ const xRel = event.pageX - wrapRect.left;
+ const xPct = Math.min(Math.max(20, Math.floor((xRel / wrapRect.width) * 100)), 80);
+ this.displayWrap.style.flexBasis = `${100-xPct}%`;
+ this.editor.settings.set('editorWidth', xPct);
+ };
+ const upListener = (event) => {
+ window.removeEventListener('pointermove', moveListener);
+ window.removeEventListener('pointerup', upListener);
+ this.display.style.pointerEvents = null;
+ document.body.style.userSelect = null;
+ this.editor.cm.refresh();
+ };
+
+ this.display.style.pointerEvents = 'none';
+ document.body.style.userSelect = 'none';
+ window.addEventListener('pointermove', moveListener);
+ window.addEventListener('pointerup', upListener);
+ });
+ const widthSetting = this.editor.settings.get('editorWidth');
+ if (widthSetting) {
+ this.displayWrap.style.flexBasis = `${100-widthSetting}%`;