perf(ui): the dialogs you type in no longer sit on a blurred backdrop
A backdrop-filter covers the whole window and is recomputed every time anything above it repaints. Behind these dialogs is an application that never stops moving — CAT polls four times a second, spots arrive, meters sweep, maps redraw — so the filter was being recomputed continuously, and each keystroke's repaint dragged a full-window blur with it. That is why the lag was felt in Preferences and nowhere else, and why fixing the cluster macros did not end it. Worse in one place: the cluster server editor opens FROM Preferences, so its overlay was the SECOND full-window filter stacked over the first. That is exactly where the delay was first reported. The dialogs an operator types in for minutes — Preferences, the cluster editor, the QSO editor, bulk edit, alert rules, award definitions — now dim the background harder instead of blurring it. Everything else keeps the blur: a confirmation you click through in a second costs nothing.
This commit is contained in:
@@ -8858,7 +8858,11 @@ function SettingsModalImpl({ onClose, onSaved, initialSection, onMainPaneChanged
|
||||
|
||||
return (
|
||||
<Dialog open onOpenChange={(o) => { if (!o) onClose(); }}>
|
||||
<DialogContent className="max-w-[1180px] w-full max-h-[90vh] grid grid-rows-[auto_1fr_auto] gap-0 p-0">
|
||||
{/* No backdrop blur. This dialog is open for minutes with the operator
|
||||
typing in it, and the application behind it never stops repainting —
|
||||
a full-window backdrop filter is then recomputed under every one of
|
||||
those repaints, which is what the delay between key and letter was. */}
|
||||
<DialogContent overlayBlur={false} className="max-w-[1180px] w-full max-h-[90vh] grid grid-rows-[auto_1fr_auto] gap-0 p-0">
|
||||
<DialogHeader>
|
||||
<DialogTitle>{t('settings.title')}</DialogTitle>
|
||||
<DialogDescription className="sr-only">Configure OpsLog modules — station, lookup, hardware…</DialogDescription>
|
||||
@@ -8971,7 +8975,10 @@ function ClusterServerEditor({ value, onCancel, onSave }: ClusterEditorProps) {
|
||||
(p) => p.host.toLowerCase() === (s.host ?? '').trim().toLowerCase() && p.port === s.port);
|
||||
return (
|
||||
<Dialog open onOpenChange={(o) => { if (!o) onCancel(); }}>
|
||||
<DialogContent className="max-w-[640px] px-6">
|
||||
{/* Opened from Preferences, so its overlay would be the SECOND
|
||||
full-window backdrop filter stacked over a moving page — which is
|
||||
where the typing delay was first noticed. */}
|
||||
<DialogContent overlayBlur={false} className="max-w-[640px] px-6">
|
||||
<DialogHeader className="px-2">
|
||||
<DialogTitle>{s.id ? `Edit cluster · ${s.name || 'unnamed'}` : 'New cluster'}</DialogTitle>
|
||||
<DialogDescription className="text-xs">
|
||||
|
||||
Reference in New Issue
Block a user