+
{{ i18n.t('connMgr.noneTitle') }}
-+
{{ i18n.t('connMgr.noneBody') }}
} @@ -294,7 +294,7 @@ @@ -321,7 +321,7 @@ spellcheck="false" class="h-7 rounded-md border border-input bg-transparent px-2 font-mono outline-none focus:ring-2 focus:ring-ring" /> - + {{ i18n.t('connMgr.localDirHint') }} diff --git a/ui/src/app/skins/7like/context-menu.ts b/ui/src/app/skins/7like/context-menu.ts index b7cfea9..0e51edb 100644 --- a/ui/src/app/skins/7like/context-menu.ts +++ b/ui/src/app/skins/7like/context-menu.ts @@ -1,12 +1,18 @@ import { Component, ElementRef, computed, effect, inject, signal, viewChild } from '@angular/core'; import { ContextMenuService, type MenuItem } from '@core/context-menu.service'; import { FocusService } from '@core/focus.service'; +import { remPx } from '@core/metrics'; -/** Rough per-item metrics, used only to decide whether the menu must flip. */ -const ITEM_H = 24; // 7.css: 4px padding x2 + ~15px line -const DIVIDER_H = 7; // .has-divider:after: 2px bevel + margins -const MENU_W = 200; -const EDGE_GAP = 6; +/** Rough per-item metrics in REM, used to size the menu and decide whether it + * must flip. Rem because the interface scale is a root font-size lever: the + * old `MENU_W = 200` was pinned into the DOM via [style.width.px], so the box + * stayed 200px while the text inside grew with the scale and overflowed. + * Values mirror the skinfix restatement of 7.css's menu metrics in 7like.css + * (item padding 0.25rem x2 + the ~0.9375rem line). */ +const ITEM_H_REM = 1.5; // 24px @16 +const DIVIDER_H_REM = 0.4375; // 7px @16: 2px bevel + 3px/2px margins +const MENU_W_REM = 12.5; // 200px @16 +const EDGE_GAP = 6; // px on purpose: a viewport-edge margin, not a UI size /** One rendered