@@ -1185,16 +1185,9 @@ impl Fsm for PathToolFsmState {
1185
1185
. push ( HintGroup ( vec ! [ HintInfo :: mouse( MouseMotion :: Rmb , "" ) , HintInfo :: keys( [ Key :: Escape ] , "Cancel" ) . prepend_slash( ) ] ) ) ;
1186
1186
1187
1187
let drag_anchor = HintInfo :: keys ( [ Key :: Space ] , "Drag Anchor" ) ;
1188
- let point_select_state_hint_group = match dragging_state. point_select_state {
1189
- PointSelectState :: HandleNoPair => {
1190
- let mut hints = vec ! [ drag_anchor] ;
1191
- hints. push ( HintInfo :: keys ( [ Key :: Shift ] , "Snap 15°" ) ) ;
1192
- hints. push ( HintInfo :: keys ( [ Key :: Control ] , "Lock Angle" ) ) ;
1193
- hints
1194
- }
1195
- PointSelectState :: HandleWithPair => {
1196
- let mut hints = vec ! [ drag_anchor] ;
1197
- hints. push ( HintInfo :: keys ( [ Key :: Tab ] , "Swap Selected Handles" ) ) ;
1188
+ let toggle_group = match dragging_state. point_select_state {
1189
+ PointSelectState :: HandleNoPair | PointSelectState :: HandleWithPair => {
1190
+ let mut hints = vec ! [ HintInfo :: keys( [ Key :: Tab ] , "Swap Selected Handles" ) ] ;
1198
1191
hints. push ( HintInfo :: keys (
1199
1192
[ Key :: KeyC ] ,
1200
1193
if colinear == ManipulatorAngle :: Colinear {
@@ -1203,18 +1196,40 @@ impl Fsm for PathToolFsmState {
1203
1196
"Make Handles Colinear"
1204
1197
} ,
1205
1198
) ) ;
1199
+ hints
1200
+ }
1201
+ PointSelectState :: Anchor => Vec :: new ( ) ,
1202
+ } ;
1203
+ let hold_group = match dragging_state. point_select_state {
1204
+ PointSelectState :: HandleNoPair => {
1205
+ let mut hints = vec ! [ ] ;
1206
1206
if colinear != ManipulatorAngle :: Free {
1207
1207
hints. push ( HintInfo :: keys ( [ Key :: Alt ] , "Equidistant Handles" ) ) ;
1208
1208
}
1209
1209
hints. push ( HintInfo :: keys ( [ Key :: Shift ] , "Snap 15°" ) ) ;
1210
1210
hints. push ( HintInfo :: keys ( [ Key :: Control ] , "Lock Angle" ) ) ;
1211
+ hints. push ( drag_anchor) ;
1212
+ hints
1213
+ }
1214
+ PointSelectState :: HandleWithPair => {
1215
+ let mut hints = vec ! [ ] ;
1216
+ if colinear != ManipulatorAngle :: Free {
1217
+ hints. push ( HintInfo :: keys ( [ Key :: Alt ] , "Equidistant Handles" ) ) ;
1218
+ }
1219
+ hints. push ( HintInfo :: keys ( [ Key :: Shift ] , "Snap 15°" ) ) ;
1220
+ hints. push ( HintInfo :: keys ( [ Key :: Control ] , "Lock Angle" ) ) ;
1221
+ hints. push ( drag_anchor) ;
1211
1222
hints
1212
1223
}
1213
1224
PointSelectState :: Anchor => Vec :: new ( ) ,
1214
1225
} ;
1215
1226
1216
- if !point_select_state_hint_group. is_empty ( ) {
1217
- dragging_hint_data. 0 . push ( HintGroup ( point_select_state_hint_group) ) ;
1227
+ if !toggle_group. is_empty ( ) {
1228
+ dragging_hint_data. 0 . push ( HintGroup ( toggle_group) ) ;
1229
+ }
1230
+
1231
+ if !hold_group. is_empty ( ) {
1232
+ dragging_hint_data. 0 . push ( HintGroup ( hold_group) ) ;
1218
1233
}
1219
1234
1220
1235
dragging_hint_data
0 commit comments