This commit is contained in:
2026-07-16 23:45:21 +02:00
parent f6e9e13f4e
commit 5d490cf134
2 changed files with 18 additions and 13 deletions

View File

@@ -3732,8 +3732,8 @@ html[theme='f0ck95d'] {
html[theme="f0ck95d"] .item_title { html[theme="f0ck95d"] .item_title {
background: black; background: black;
border-left: inset 2px silver; border-left: inset 3px silver;
border-right: outset 2px silver; border-right: outset 3px silver;
} }
html[theme="f0ck95d"] .err { html[theme="f0ck95d"] .err {
@@ -3816,11 +3816,6 @@ html[theme="f0ck95d"] .metadata {
color: var(--accent); color: var(--accent);
} }
html[theme="f0ck95d"] .media-object {
border-left: inset 1px silver;
border-right: outset 1px silver;
}
html[theme="f0ck95d"] span.placeholder { html[theme="f0ck95d"] span.placeholder {
border-left: 1px solid var(--gray); border-left: 1px solid var(--gray);
opacity: 0.5; opacity: 0.5;

View File

@@ -546,10 +546,12 @@
const isExpanded = container.classList.contains('expanded'); const isExpanded = container.classList.contains('expanded');
const scrollHeight = inner.scrollHeight; const scrollHeight = inner.scrollHeight;
const clientHeight = inner.clientHeight; const clientHeight = inner.clientHeight;
// Check for images that haven't finished loading yet — their height is 0, const hasUnloadedImages = Array.from(inner.querySelectorAll('img:not(.emoji), video')).some(
// which makes content appear shorter than it will actually be after load. media => {
const hasUnloadedImages = Array.from(inner.querySelectorAll('img:not(.emoji)')).some( if (media.tagName === 'IMG') return !media.complete;
img => !img.complete || img.naturalHeight === 0 if (media.tagName === 'VIDEO') return media.readyState < 1; // HAVE_METADATA
return false;
}
); );
results.push({ results.push({
@@ -599,8 +601,16 @@
const inner = media.closest('.comment-content-inner'); const inner = media.closest('.comment-content-inner');
if (inner) { if (inner) {
media.addEventListener('load', () => checkOverflow(inner), { once: true }); const handler = () => checkOverflow(inner);
media.addEventListener('loadedmetadata', () => checkOverflow(inner), { once: true }); media.addEventListener('load', handler, { once: true });
media.addEventListener('error', handler, { once: true });
media.addEventListener('loadedmetadata', handler, { once: true });
// Also use ResizeObserver to catch layout changes (e.g. cached image layout deferred)
if (window.ResizeObserver) {
const ro = new ResizeObserver(() => checkOverflow(inner));
ro.observe(media);
}
} }
}); });
}; };