diff --git a/src/renderer/src/components/tab-bar/drop-indicator.ts b/src/renderer/src/components/tab-bar/drop-indicator.ts
index 64d7725085c..a755015eea0 100644
--- a/src/renderer/src/components/tab-bar/drop-indicator.ts
+++ b/src/renderer/src/components/tab-bar/drop-indicator.ts
@@ -19,6 +19,10 @@ export function getDropIndicatorClasses(dropIndicator: DropIndicator): string {
// positioned with z-10 so it overlays the tab chrome without shifting layout
// and without conflicting with drop-indicator pseudo-elements during a drag.
// `-top-px` pulls it onto the tab's own 1px top border so the blue bar
-// REPLACES the faint gray line rather than stacking below it.
+// REPLACES the faint gray line rather than stacking below it. Horizontal
+// inset is 0 (not -1px): negative insets on the last tab bleed into the
+// strip's scrollWidth, so clicking between active tabs flips the strip
+// between "fits exactly" and "overflows by 1px", which jitters every tab by
+// 1px because the browser preserves scrollLeft near the end.
export const ACTIVE_TAB_INDICATOR_CLASSES =
'pointer-events-none absolute inset-x-0 -top-px h-px bg-[#1e3d9c] z-10'
diff --git a/src/renderer/src/components/tab-group/TabGroupPanel.tsx b/src/renderer/src/components/tab-group/TabGroupPanel.tsx
index 0c3fa0cc43e..d8888e1603c 100644
--- a/src/renderer/src/components/tab-group/TabGroupPanel.tsx
+++ b/src/renderer/src/components/tab-group/TabGroupPanel.tsx
@@ -28,6 +28,7 @@ export default function TabGroupPanel({
isWorktreeActive,
isFocused,
hasSplitGroups,
+ touchesRightEdge,
reserveClosedExplorerToggleSpace,
reserveCollapsedSidebarHeaderSpace,
isTabDragActive = false,
@@ -39,6 +40,7 @@ export default function TabGroupPanel({
isWorktreeActive: boolean
isFocused: boolean
hasSplitGroups: boolean
+ touchesRightEdge: boolean
reserveClosedExplorerToggleSpace: boolean
reserveCollapsedSidebarHeaderSpace: boolean
isTabDragActive?: boolean
@@ -176,8 +178,27 @@ export default function TabGroupPanel({
return (
@@ -232,7 +240,7 @@ export default function TabGroupSplitLayout({
worktreeId={worktreeId}
focusedGroupId={focusedGroupId}
isWorktreeActive={isWorktreeActive}
- hasSplitGroups={layout.type === 'split'}
+ hasSplitGroups={hasSplits}
touchesTopEdge={true}
touchesRightEdge={true}
touchesLeftEdge={true}