╭ changed ──────────────╮ │src/ui/Repo/Commits.zig│ ╰───────────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │361 var diff_scroll = blk2: { │ │362 var diff_inner = try wgt.Box(ui.Widget).init(allocator, .{ .border_style = null, .direction = .vert }); │ │363 errdefer diff_inner.deinit(allocator); │ │364 - break :blk2 try wgt.Scroll(ui.Widget).init(allocator, .{ .box = diff_inner }, .{ .direction = .both, .web_native = !session.is_terminal }); │ │364 + // fill the pane (content top-left, scroll bars pinned to the │ │365 + // edges) rather than shrinking to the diff content. │ │366 + break :blk2 try wgt.Scroll(ui.Widget).init(allocator, .{ .box = diff_inner }, .{ .direction = .both, .web_native = !session.is_terminal, .fill = true });│ │367 }; │ │368 errdefer diff_scroll.deinit(allocator); │ │369 var frame = try wgt.Box(ui.Widget).init(allocator, .{ .border_style = .hidden, .direction = .vert }); │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │538 const both_panes_fit = if (constraint.max_size.width) |w| w >= list_max_width + diff_min_width else true; │ │539 self.contentBox().children.values()[list_index].max_size = if (both_panes_fit) .{ .width = list_max_width, .height = null } else null; │ │540 │ │541 + // stretch the diff pane across the rest of the width so it fills the area │ │542 + // rather than shrinking to its content; its scroll fills the pane. when │ │543 + // too narrow for both, it fills the whole width. │ │544 + if (constraint.max_size.width) |w| { │ │545 + self.contentBox().children.values()[diff_index].min_size = .{ .width = if (both_panes_fit) w - list_max_width else w, .height = null };│ │546 + } else { │ │547 + self.contentBox().children.values()[diff_index].min_size = .{ .width = diff_min_width, .height = null }; │ │548 + } │ │549 + │ │550 // the web bounds the layout to the browser viewport like the terminal; │ │551 // each Scroll's web-native mode hands its full content to a real │ │552 // scrollable element, so we no longer build unbounded here. │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯