diff --git a/desktop/src/shared/styles/globals.css b/desktop/src/shared/styles/globals.css index 660982a6df..2edf002a51 100644 --- a/desktop/src/shared/styles/globals.css +++ b/desktop/src/shared/styles/globals.css @@ -2054,6 +2054,11 @@ contain-intrinsic-size: auto 60px; } + /* paint containment clips the action bar's upward bleed; un-pause the active row */ + .timeline-row-cv:is(:hover, :focus-within) { + content-visibility: visible; + } + .content-visibility-auto-interactive { content-visibility: auto; contain-intrinsic-size: auto 200px; diff --git a/desktop/tests/e2e/messaging.spec.ts b/desktop/tests/e2e/messaging.spec.ts index 5835ef82e0..76ce803512 100644 --- a/desktop/tests/e2e/messaging.spec.ts +++ b/desktop/tests/e2e/messaging.spec.ts @@ -88,6 +88,15 @@ test("long autolink wraps without widening the timeline", async ({ page }) => { return barBox.x + barBox.width - (timelineBox.x + timelineBox.width); }) .toBeLessThanOrEqual(0); + // #1338 guard: hovering must un-pause the row so the upward-bleeding bar renders + await expect + .poll(async () => + actionBar.evaluate((bar) => { + const cvRow = bar.closest(".timeline-row-cv"); + return cvRow ? getComputedStyle(cvRow).contentVisibility : "missing"; + }), + ) + .toBe("visible"); }); test("send multiple messages in sequence", async ({ page }) => {