mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-22 00:12:34 +00:00
CAD: right-click in a sketch offers verbs for what is selected, instead of for nothing
Select a line in a sketch, right-click, and every sketch verb was greyed: Trim,
Extend, Fillet, Chamfer, Offset, Mirror, the arrays, Constrain. The menu was
right and the selection was gone — two independent faults, each of which hid
the other.
FIRST, the Select-mode RightDown branch called clear_selection() before handing
the click back. Handing it back is correct: the m_right_consumed flag means "the
tool USED this right-click", and a plain right-click is not a gesture
terminator, so the offer should open. Clearing first is not: the offer describes
WHAT IS SELECTED, so wiping the selection guaranteed it could only ever describe
nothing. Deselection keeps its own gesture — left-click on empty space, a few
lines above in the same handler.
SECOND, offer_selection_kind() returned SkNone for every sketch state. The offer
table has always carried verbs for a selected line, arc, point or pair, but
nothing ever RETURNED those kinds, so fourteen rows were gated on selection bits
no code path could set. Classify the selection instead: SkLine / SkArc / SkPoint
/ Sk2Ent, via a first_selected_type() accessor on the tool and two forwarders on
the canvas.
Either fix alone measures as a failure — the classification is handed an empty
selection, or the preserved selection has no kind to match — which is why both
land together.
This is the second half of the report behind 3eb6e5d608: a user comparing the
Design tab with Onshape said "adding constraints seems to be missing"
(OrcaSlicer PR #15238). Constrain was one of the fourteen dead rows, and the
gesture that would have shown it threw the selection away first.
Verified at the machine on behemoth by Tommaso: select a line of a rectangle,
right-click, and the sketch verbs are live.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
eb52972a8e
commit
614824ce89
@@ -1338,6 +1338,16 @@ bool DesignCanvas::is_constraining_entities() const
|
||||
return m_sketch_tool.is_constraining_entities();
|
||||
}
|
||||
|
||||
int DesignCanvas::sketch_selection_count() const
|
||||
{
|
||||
return int(m_sketch_tool.selection().size());
|
||||
}
|
||||
|
||||
bool DesignCanvas::sketch_first_selected_type(SketchEntity::Type& out) const
|
||||
{
|
||||
return m_sketch_tool.first_selected_type(out);
|
||||
}
|
||||
|
||||
bool DesignCanvas::selected_constrain_entities(int& e0, int& e1) const
|
||||
{
|
||||
return m_sketch_tool.selected_constrain_entities(e0, e1);
|
||||
|
||||
Reference in New Issue
Block a user