2D: Zifferntasten während Punkt-Griff-Bearbeitung nicht mehr als Werkzeug-Wechsel
Bug (Nutzer-Report direkt nach dem vorigen Commit): sobald man nach Tab einen Länge-/Winkel-Wert eintippte, wechselte die App mitten in die Griff-Bearbeitung ins Zeichenwerkzeug (z.B. "3" -> Kreis-Werkzeug). Ursache: useToolNumberShortcuts (Vectorworks-Zifferntasten fürs Werkzeug wählen) erlaubt Zifferntasten auch bei fokussiertem, leerem Befehlsfeld, SOFERN die Zeichen-Engine gerade keinen Befehl mit Feldern laufen hat (`!eng.hasFields() && !eng.acceptsFreeText()`). Genau das trifft während der Griff-Bearbeitung IMMER zu, da dort gar keine Engine-Befehl läuft, sondern der separate Feld-Controller aus useGripEditing.ts -- der Wächter kannte diesen zweiten Fall nicht. Fix: gripDragInfoRef (schon vorhanden, zeigt "ein Punkt-Griff ist bewaffnet" an) wird von useGripEditing zurückgegeben und an useToolNumberShortcuts durchgereicht; dessen Handler bricht jetzt ganz vorne ab, wenn ein Griff bewaffnet ist -- unabhängig davon, ob/wo gerade Fokus liegt. Der useToolNumberShortcuts-Aufruf in App.tsx musste dafür hinter den useGripEditing()-Aufruf wandern (Reihenfolge war vorher umgekehrt, gripDragInfoRef existierte an der alten Stelle noch nicht).
This commit is contained in:
@@ -751,5 +751,10 @@ export function useGripEditing(opts: {
|
||||
gripEditFields,
|
||||
cycleGripEditField,
|
||||
submitGripEditValue,
|
||||
// Für useToolNumberShortcuts: solange ein Griff bewaffnet ist, dürfen
|
||||
// Zifferntasten NICHT als Werkzeug-Wechsel interpretiert werden (auch
|
||||
// nicht, wenn das Befehlsfeld fokussiert und leer ist — die Zeichen-
|
||||
// Engine selbst läuft ja nicht, daher griff dieser Wächter sonst nicht).
|
||||
gripDragInfoRef,
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user