Skip to content

Overlay: windows that can draw position-aware widgets (compass, rings, markers) #184

Description

@demortes

Goal

Today's overlay (IOverlay, OverlayContentBuilder, Windows-only OverlayWindow) renders text lines. Position features need small custom-drawn widgets: a compass strip, distance rings, a target marker, a map pane.

Scope

  • Extend the overlay abstraction so a feature can contribute a drawable widget with its own size and update rate, composited into the existing click-through, topmost, borderless window (or a sibling window), driven by the same UI tick.
  • Keep it behind an interface with a no-op fallback on non-Windows (AGENTS.md rule 4); document what each platform can do.
  • Per-widget enable, screen position and scale in Settings; remember positions; hide the overlay when Elite is not the foreground app. NOTE: the current overlay does not do this (it has no foreground-window detection and is always topmost); see Overlay: topmost self-resizing window can minimize/steal focus from the game and EDCopilot on system jump #204.
  • All colours from Themes/Theme.axaml; no hardcoded values.

Acceptance criteria

  • A sample widget (e.g. a heading compass fed by the position model) renders over the game and updates smoothly.
  • Widgets can be positioned, scaled and turned off individually and the choice persists.
  • Non-Windows builds compile and degrade to the dashboard without errors.
  • Measured cost with the overlay idle is negligible.

Depends on the surface position model for the first real widget.

Part of the epic #182.

Clean-room: see the rule on the epic. No SrvSurvey code, assets, maps or data.

🤖 Generated with Claude Code

Activity

  1. demortes commented on Oct 9, 2026

    @demortes
    ContributorAuthor

    Correction: an earlier version of this issue said the overlay already hides itself when the game is not focused. It does not: there is no foreground-window detection, and the overlay is always topmost. The user-reported focus/minimize problem on system jump is tracked in #204, and the position-aware widgets here should not be built on the current self-resizing window until that is fixed.

    🤖 Generated with Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions