keep the selection panel half a tile off what it describes
The panel had one distance for the view edges, the widgets it steps around, and the selection alike, so it stood eight pixels from a building and touched it outright along the top. The gap from the selection is now its own value, half a tile, and it is horizontal only -- the top edges stay level. It is sampled where the tile size is known, in the same moment as the anchor rectangle, and travels with it: a rectangle frozen in one moment has no meaningful distance to a tile size measured in another. chooseSide now takes the gap in place of the margin, the band having already taken the margin off. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ne3mejABZoLWKLh8fgpM3x
This commit is contained in:
@@ -15,11 +15,17 @@
|
||||
// is while the selection grows; and because the rectangle is screen space frozen at that
|
||||
// moment, scrolling the view or a selected ship flying off does not move the panel
|
||||
// either.
|
||||
//
|
||||
// The gap the panel keeps from that rectangle travels with it, for the same reason: it is
|
||||
// half a tile as the tile stood in this moment (REQ-UI-SELECTION-PANEL, REQ-GW-TILE-SIZE)
|
||||
// and stays that for as long as the selection lasts, a rectangle frozen in one moment
|
||||
// having no meaningful distance to a tile size measured in another.
|
||||
class SelectionAnchorChangedEvent : public Event
|
||||
{
|
||||
public:
|
||||
explicit SelectionAnchorChangedEvent(QRect rectPx)
|
||||
: rectPx(rectPx) {}
|
||||
SelectionAnchorChangedEvent(QRect rectPx, int selectionGapPx)
|
||||
: rectPx(rectPx), selectionGapPx(selectionGapPx) {}
|
||||
|
||||
const QRect rectPx;
|
||||
const int selectionGapPx;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user