diff options
Diffstat (limited to 'client/js/controls/post_content_control.js')
| -rw-r--r-- | client/js/controls/post_content_control.js | 45 |
1 files changed, 18 insertions, 27 deletions
diff --git a/client/js/controls/post_content_control.js b/client/js/controls/post_content_control.js index 8cbd5d8..0023854 100644 --- a/client/js/controls/post_content_control.js +++ b/client/js/controls/post_content_control.js @@ -29,6 +29,9 @@ class PostContentControl { this._post.addEventListener("changeContent", (e) => this._evtPostContentChange(e) ); + + // Always disable overlay, because I'm not going to use notes + this.disableOverlay(); } disableOverlay() { @@ -93,46 +96,34 @@ class PostContentControl { } _resize(width, height) { - const resizeListenerNodes = [this._postContentNode].concat( - ...this._postContentNode.querySelectorAll(".resize-listener") - ); + this._resizePostContent(width, height); + const resizeListenerNodes = this._postContentNode.querySelectorAll(".resize-listener"); for (let node of resizeListenerNodes) { node.style.width = width + "px"; node.style.height = height + "px"; } } - _refreshSize() { - if (window.innerWidth <= 800) { - const buttons = document.querySelector(".sidebar > .buttons"); - if (buttons) { - const content = document.querySelector(".content"); - content.insertBefore(buttons, content.querySelector(".post-container + *")); - - const afterControls = document.querySelector(".content > .after-mobile-controls"); - if (afterControls) { - afterControls.parentElement.parentElement.appendChild(afterControls); - } - } - } else { - const buttons = document.querySelector(".content > .buttons"); - if (buttons) { - const sidebar = document.querySelector(".sidebar"); - sidebar.insertBefore(buttons, sidebar.firstElementChild); - } - - const afterControls = document.querySelector(".content + .after-mobile-controls"); - if (afterControls) { - document.querySelector(".content").appendChild(afterControls); - } + _resizePostContent(width, height) { + // on mobile don't make the content node narrower than the screen, so that small images are centered + // use browser width to accommodate Android's on-screen buttons in landscape mode + if (window.innerWidth < 1000) { + width = Math.max(window.innerWidth, width); } + this._postContentNode.style.width = width + "px"; + this._postContentNode.style.height = height + "px"; + } + _refreshSize() { this._currentFitFunction(); } _install() { this._reinstall(); - optimizedResize.add(() => this._refreshSize()); + // Don't auto-resize on mobile, to prevent size jerk when scrolling + if (window.innerWidth > 1000) { + optimizedResize.add(() => this._refreshSize()); + } views.monitorNodeRemoval(this._hostNode, () => { this._uninstall(); }); |