aethersdr / aethersdr/AetherSDR

MainWindow status bar: bottom-row controls get their clicks shadowed by the frameless edge-resize margin

Open Beginner friendly
#4,886 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug good first issue GUI maintainer-review priority: low
Dominant language
C++
Stars
221
Forks
117
Avg merge
2d 7h
Merged PRs (30d)
299

Description

Report preparation
  • I used the AI-assisted bug report tool (Help → Support → File an Issue)
  • I have attached a support bundle or log file
What happened?

Surfaced while working PR #4829 (frameless move/resize under xcb, #4827).

FramelessResizer reserves a 6px band at every edge of a frameless MainWindow for edge-resize (src/gui/FramelessResizer.h/.cpp). The status bar is docked flush to the window's bottom edge, and several of its clickable controls have rects that genuinely extend into that band:

  • gpsStatusButton (GPS & Station Location) overlaps by ~4px
  • The "Cancel transmit" status label overlaps by ~1px

Confirmed live under QT_QPA_PLATFORM=xcb via the automation bridge's read-only hitTest verb (widgetAt/childAt both resolve to the control at a point inside the resize margin). Since FramelessResizer is an application-wide event filter, Qt guarantees it sees a press in that band before the widget does — so a click in the last few pixels of these controls resizes the window instead of activating the control.

Fix: cap maximumHeight() on the affected status-bar stacks/labels (gpsStatusButton and friends, built in MainWindow.cpp around the status bar setup) so their clickable area stops a few px short of the window edge. Belongs in the status bar layout, not in FramelessResizer, which has no way to know about a specific adopter's child geometry.

Not a blocker for #4829 — pre-existing exposure once any control sits this close to a frameless window edge; the PR's own fix (moving the filter application-wide) is what makes it observable on every platform instead of only where the edge-resize band happened to already be live.

What did you expect?

The status bar click areas should take precedence over resize handles.

Steps to reproduce
  1. Connect to either radio or built-in simulator
  2. Hover mouse over clickable area on status bar (e.g. station name)
  3. slide mouse pointer down towards the lower edge
  4. the pointer will turn into a resize handle whilst still inside the clickable area
AetherSDR version

v26.8.1

Radio model & firmware

Flex-8600 4.2.20

Operating system

Linux

OS version and hardware

Ubuntu 26.04, Wayland running AetherSDR under xcb fallback

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in src/gui/FramelessResizer.h/.cpp to understand the 6px edge-resize band, then inspect the status-bar setup in MainWindow.cpp, especially gpsStatusButton, the GPS and Station Location controls, and the Cancel transmit label. Reproduce under QT_QPA_PLATFORM=xcb while moving across the bottom edge. Done means the affected controls remain clickable through their visible areas without triggering window resizing.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
desktop
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
74/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.