diff --git a/public/src/client/topic.js b/public/src/client/topic.js index 71a3bb5d4b..6a95ce842f 100644 --- a/public/src/client/topic.js +++ b/public/src/client/topic.js @@ -241,12 +241,21 @@ define('forum/topic', [ }); function addCopyCodeButton() { + function scrollbarVisible(element) { + return element.scrollHeight > element.clientHeight; + } let codeBlocks = $('[component="topic"] [component="post/content"] code:not([data-button-added])'); codeBlocks = codeBlocks.filter((i, el) => $(el).text().includes('\n')); const container = $('
'); const buttonDiv = $(''); - codeBlocks.parent().wrap(container).parent().append(buttonDiv); - codeBlocks.parent().parent().find('[component="copy/code/btn"]').translateAttr('title', '[[topic:copy-code]]'); + const preEls = codeBlocks.parent(); + preEls.wrap(container).parent().append(buttonDiv); + preEls.parent().find('[component="copy/code/btn"]').translateAttr('title', '[[topic:copy-code]]'); + preEls.each((index, el) => { + if (scrollbarVisible(el)) { + $(el).parent().find('[component="copy/code/btn"]').css({ margin: '1rem 2rem 0 0' }); + } + }); codeBlocks.attr('data-button-added', 1); } hooks.registerPage('action:posts.loaded', addCopyCodeButton);