diff --git a/app/src/main/java/net/jeena/jtubetv/ui/screens/list/VideoListScreen.kt b/app/src/main/java/net/jeena/jtubetv/ui/screens/list/VideoListScreen.kt index 17d7681..498025b 100644 --- a/app/src/main/java/net/jeena/jtubetv/ui/screens/list/VideoListScreen.kt +++ b/app/src/main/java/net/jeena/jtubetv/ui/screens/list/VideoListScreen.kt @@ -93,10 +93,15 @@ fun VideoListScreen( // Cards-per-row of the adaptive grid — LEFT from the first card of ANY row // must open the drawer (issue #7: "every time I'm all the way on the left"). + // Measure a CARD, not the first visible item: the page header spans the full + // width, and reading its width made cards-per-row = 1 — every card near the + // top then thought it was a row start and opened the drawer. val cellsPerRow by remember { androidx.compose.runtime.derivedStateOf { val info = gridState.layoutInfo - val w = info.visibleItemsInfo.firstOrNull()?.size?.width ?: 0 + val w = info.visibleItemsInfo + .firstOrNull { it.size.width < info.viewportSize.width } + ?.size?.width ?: 0 if (w > 0) (info.viewportSize.width / w).coerceIn(1, 10) else 0 } }