AdguardTeam / AdguardTeam/AdguardForMac

Main panel opens off-screen and no UI is visible on a multi-display setup

Offen
#1,747 4 Kommentare 0 Reaktionen 1 zugewiesene Person Zugewiesen an @al-skobelev Auf GitHub ansehen
Bug Priority: P3 Version: AdGuard v2.21
Vorherrschende Sprache
Keine Sprachdaten
Sterne
331
Forks
18
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

### AdGuard version

2.19.0.2258 (build 2258)

### Browser version

Not applicable. This is an application UI/window-position issue.

### OS version

macOS 26.6.1 (build 25G76), Apple Silicon (arm64)

### Which DNS server do you use?

Not relevant to this UI issue.

### Issue Details

Steps to reproduce:

1. Use AdGuard for Mac with three displays whose coordinate spaces include displays to both the left and right of the main display.
2. Launch AdGuard, or double-click the app again while its background process is already running.
3. Observe that the Dock icon briefly appears and disappears, but no AdGuard window or usable UI becomes visible.
4. Reinstalling AdGuard does not resolve the problem, and the issue can recur after the UI is temporarily recovered.

Display layout observed when the problem occurred:

- Main display: `{{0, 0}, {1728, 1117}}`
- Right display: `{{1728, 0}, {1920, 1080}}`
- Left display: `{{-2560, -323}, {2560, 1440}}`

Diagnostic findings:

- The main AdGuard process remains running; this is not an application crash.
- AdGuard logs show `applicationShouldHandleReopen` and "Raising main panel".
- AppKit also logs that the window is ordered to the front.
- However, the main panel frame is `{{-1, 1140}, {360, 670}}`, which does not intersect any active display.
- In some occurrences the panel alpha is initially 0. Reopening changes it to 1, but the panel remains off-screen.
- `CGWindowIsOnscreen` may still report true even though the panel frame is outside all active display bounds.

### Expected Behavior

When the app is launched or reopened, AdGuard should validate the stored panel frame against the current `NSScreen.visibleFrame` values and move the panel onto a visible display if necessary.

If the menu-bar/status-item anchor is unavailable, AdGuard should fall back to a visible position on the main screen or open the Settings window.

### Actual Behavior

AdGuard raises its main panel at an off-screen coordinate. The process stays alive, but the user sees no UI and the app appears to close immediately.

### Additional Information

Temporary recovery methods:

- Moving the AX window to a visible coordinate such as `{684, 224}` restores the panel.
- Invoking **AdGuard > Settings…** through Accessibility opens a visible Settings window.
- Resetting the status-item preferred-position preference and restarting SystemUIServer/Control Center did not permanently fix the issue.
- Reinstalling the application did not fix it, which suggests the persisted panel/status-item position is retained outside the app bundle.

No AdGuard crash report was generated during the failure.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.