fix(ui): hide Electron menu bar and polish editor chrome

Drop the system View menu across windows, show the open project name above Game properties, and keep scene list kebab visible with truncated titles and overflow tooltips.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Ivan Fontosh
2026-08-03 09:21:26 +08:00
parent 41b112159f
commit 61446dacfc
5 changed files with 47 additions and 32 deletions
+21 -1
View File
@@ -1018,6 +1018,9 @@ export function EditorApp() {
<div className={styles.inspectorScroll}>
{state.project ? (
<>
<div className={styles.projectNameLabel} title={state.project.meta.name}>
{t('scenes.projectLabel', { name: state.project.meta.name })}
</div>
<div className={styles.inspectorTitle}>{t('scenes.inspectorGame')}</div>
<CampaignInspector
audioRefs={campaignAudioRefs}
@@ -2759,6 +2762,8 @@ function SceneListCard({
const previewUrl = useAssetUrl(scene.previewAssetId);
const [menu, setMenu] = useState<{ x: number; y: number } | null>(null);
const [pendingDelete, setPendingDelete] = useState(false);
const titleRef = useRef<HTMLDivElement | null>(null);
const [titleTooltip, setTitleTooltip] = useState<string | undefined>(undefined);
useEffect(() => {
if (!menu) return;
@@ -2875,6 +2880,22 @@ function SceneListCard({
<div className={styles.sceneCardBody}>
<div className={styles.sceneCardHeader}>
{scene.active ? <div className={styles.badgeCurrent}>{t('sceneCard.current')}</div> : null}
<div
ref={titleRef}
className={styles.sceneCardTitle}
title={titleTooltip}
onMouseEnter={() => {
const el = titleRef.current;
if (!el) {
setTitleTooltip(undefined);
return;
}
setTitleTooltip(el.scrollWidth > el.clientWidth + 1 ? scene.title : undefined);
}}
onMouseLeave={() => setTitleTooltip(undefined)}
>
{scene.title}
</div>
<button
type="button"
aria-label={t('sceneCard.menu')}
@@ -2888,7 +2909,6 @@ function SceneListCard({
</button>
</div>
<div className={styles.sceneCardTitle}>{scene.title}</div>
</div>
{menu && menuPos
? createPortal(