authorgravatar for maria@kuuro.netmaria <maria@kuuro.net> 2026-09-04 01:07:11-04:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-09-04 01:07:11-04:00
log57832803eed4c87c462de92892777a0934019721
treec666eb4ef6111dff351c01475b0819fe9a23c4cf
parent07891e9569c88457516b44c08c820471762969e8
signature Signed by PGP key B5690EEEBB952194

fix(desktop): restore panel titlebar interactions (#9591)

Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>

2 files changed, 17 insertions(+), 5 deletions(-)

apps/web/src/components/ChatView.tsx+9-1
...@@ -1888,6 +1888,7 @@ function ChatViewContent(props: ChatViewProps) {...@@ -1888,6 +1888,7 @@ function ChatViewContent(props: ChatViewProps) {
1888 );1888 );
1889 const rightPanelPresent = rightPanelPresence.present;1889 const rightPanelPresent = rightPanelPresence.present;
1890 const rightPanelControlsInPanel = shouldUseRightPanelSheet && rightPanelPresent && rightPanelOpen;1890 const rightPanelControlsInPanel = shouldUseRightPanelSheet && rightPanelPresent && rightPanelOpen;
1891 const rightPanelControlsAtRoot = rightPanelPresent && !shouldUseRightPanelSheet;
1891 const renderedRightPanelSurface = rightPanelPresence.value?.activeSurface ?? null;1892 const renderedRightPanelSurface = rightPanelPresence.value?.activeSurface ?? null;
1892 const renderedRightPanelSurfaces = rightPanelPresence.value?.surfaces ?? [];1893 const renderedRightPanelSurfaces = rightPanelPresence.value?.surfaces ?? [];
1893 const previewMiniPlayerVisible = shouldRenderPreviewMiniPlayer(1894 const previewMiniPlayerVisible = shouldRenderPreviewMiniPlayer(
...@@ -7679,7 +7680,7 @@ function ChatViewContent(props: ChatViewProps) {...@@ -7679,7 +7680,7 @@ function ChatViewContent(props: ChatViewProps) {
76797680
7680 return (7681 return (
7681 <div className="relative flex min-h-0 min-w-0 flex-1 overflow-hidden bg-background">7682 <div className="relative flex min-h-0 min-w-0 flex-1 overflow-hidden bg-background">
7682 {!rightPanelControlsInPanel ? panelLayoutControls : null}7683 {rightPanelControlsAtRoot ? panelLayoutControls : null}
7683 <div7684 <div
7684 className={cn(7685 className={cn(
7685 "flex min-h-0 min-w-0 flex-col overflow-x-hidden",7686 "flex min-h-0 min-w-0 flex-col overflow-x-hidden",
...@@ -7694,6 +7695,13 @@ function ChatViewContent(props: ChatViewProps) {...@@ -7694,6 +7695,13 @@ function ChatViewContent(props: ChatViewProps) {
7694 reserveNativeControls={reserveTitleBarControlInset && !inlineRightPanelOwnsTitleBar}7695 reserveNativeControls={reserveTitleBarControlInset && !inlineRightPanelOwnsTitleBar}
7695 className="relative bg-background"7696 className="relative bg-background"
7696 >7697 >
7698 {isElectron && rightPanelControlsAtRoot ? (
7699 <span
7700 aria-hidden
7701 className="pointer-events-none fixed top-[var(--workspace-controls-top)] right-[var(--workspace-controls-right)] h-[var(--workspace-topbar-height)] w-28 [-webkit-app-region:no-drag]"
7702 />
7703 ) : null}
7704 {!rightPanelControlsAtRoot && !rightPanelControlsInPanel ? panelLayoutControls : null}
7697 <ChatHeader7705 <ChatHeader
7698 {...(!supportsPullRequests || activeProjectRepository === null7706 {...(!supportsPullRequests || activeProjectRepository === null
7699 ? {}7707 ? {}
apps/web/src/components/RightPanelTabs.tsx+8-4
...@@ -1002,10 +1002,7 @@ export function RightPanelTabs(props: RightPanelTabsProps) {...@@ -1002,10 +1002,7 @@ export function RightPanelTabs(props: RightPanelTabsProps) {
1002 ref={tabListRef}1002 ref={tabListRef}
1003 hideScrollbars1003 hideScrollbars
1004 scrollFade1004 scrollFade
1005 className={cn(1005 className="min-w-0 flex-1 rounded-none"
1006 "min-w-0 flex-1 rounded-none",
1007 ownsDesktopTitleBar && "[-webkit-app-region:no-drag]",
1008 )}
1009 data-right-panel-tab-list1006 data-right-panel-tab-list
1010 >1007 >
1011 <div className="flex h-full w-max min-w-full items-center gap-1">1008 <div className="flex h-full w-max min-w-full items-center gap-1">
...@@ -1031,6 +1028,7 @@ export function RightPanelTabs(props: RightPanelTabsProps) {...@@ -1031,6 +1028,7 @@ export function RightPanelTabs(props: RightPanelTabsProps) {
1031 onContextMenu={(event) => void handleTabContextMenu(event, surface)}1028 onContextMenu={(event) => void handleTabContextMenu(event, surface)}
1032 className={cn(1029 className={cn(
1033 "cursor-pointer group/tab flex h-6 max-w-36 shrink-0 items-center gap-0.5 rounded-md pr-2 pl-1.5 text-xs",1030 "cursor-pointer group/tab flex h-6 max-w-36 shrink-0 items-center gap-0.5 rounded-md pr-2 pl-1.5 text-xs",
1031 ownsDesktopTitleBar && "[-webkit-app-region:no-drag]",
1034 active1032 active
1035 ? "bg-accent text-foreground"1033 ? "bg-accent text-foreground"
1036 : "text-muted-foreground hover:bg-accent/60 hover:text-foreground",1034 : "text-muted-foreground hover:bg-accent/60 hover:text-foreground",
...@@ -1235,6 +1233,12 @@ export function RightPanelTabs(props: RightPanelTabsProps) {...@@ -1235,6 +1233,12 @@ export function RightPanelTabs(props: RightPanelTabsProps) {
1235 </div>1233 </div>
1236 ) : null}1234 ) : null}
1237 {props.layoutControls}1235 {props.layoutControls}
1236 {ownsDesktopTitleBar ? (
1237 <span
1238 aria-hidden
1239 className="pointer-events-none fixed top-[var(--workspace-controls-top)] right-[var(--workspace-controls-right)] h-[var(--workspace-topbar-height)] w-28 [-webkit-app-region:no-drag]"
1240 />
1241 ) : null}
1238 </div>1242 </div>
1239 <div className="flex min-h-0 flex-1 flex-col" data-right-panel-surface-content>1243 <div className="flex min-h-0 flex-1 flex-col" data-right-panel-surface-content>
1240 {props.activeSurfaceId === null ? (1244 {props.activeSurfaceId === null ? (