- view dolly now quits on pressing escape (if activated from the search menu).
- adding new bones now makes them active.
This commit is contained in:
@@ -2356,6 +2356,7 @@ EditBone *ED_armature_edit_bone_add(bArmature *arm, const char *name)
|
||||
void add_primitive_bone(Scene *scene, View3D *v3d, RegionView3D *rv3d)
|
||||
{
|
||||
Object *obedit= scene->obedit; // XXX get from context
|
||||
bArmature *arm= obedit->data;
|
||||
float obmat[3][3], curs[3], viewmat[3][3], totmat[3][3], imat[3][3];
|
||||
EditBone *bone;
|
||||
|
||||
@@ -2374,7 +2375,9 @@ void add_primitive_bone(Scene *scene, View3D *v3d, RegionView3D *rv3d)
|
||||
ED_armature_deselect_all(obedit, 0);
|
||||
|
||||
/* Create a bone */
|
||||
bone= ED_armature_edit_bone_add(obedit->data, "Bone");
|
||||
bone= ED_armature_edit_bone_add(arm, "Bone");
|
||||
|
||||
arm->act_edbone= bone;
|
||||
|
||||
copy_v3_v3(bone->head, curs);
|
||||
|
||||
|
||||
@@ -1039,6 +1039,7 @@ void VIEW3D_OT_move(wmOperatorType *ot)
|
||||
|
||||
/* ************************ viewzoom ******************************** */
|
||||
|
||||
/* viewdolly_modal_keymap has an exact copy of this, apply fixes to both */
|
||||
/* called in transform_ops.c, on each regeneration of keymaps */
|
||||
void viewzoom_modal_keymap(wmKeyConfig *keyconf)
|
||||
{
|
||||
@@ -1297,6 +1298,39 @@ static int viewzoom_exec(bContext *C, wmOperator *op)
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
|
||||
/* this is an exact copy of viewzoom_modal_keymap */
|
||||
/* called in transform_ops.c, on each regeneration of keymaps */
|
||||
void viewdolly_modal_keymap(wmKeyConfig *keyconf)
|
||||
{
|
||||
static EnumPropertyItem modal_items[] = {
|
||||
{VIEW_MODAL_CONFIRM, "CONFIRM", 0, "Confirm", ""},
|
||||
|
||||
{VIEWROT_MODAL_SWITCH_ROTATE, "SWITCH_TO_ROTATE", 0, "Switch to Rotate"},
|
||||
{VIEWROT_MODAL_SWITCH_MOVE, "SWITCH_TO_MOVE", 0, "Switch to Move"},
|
||||
|
||||
{0, NULL, 0, NULL, NULL}};
|
||||
|
||||
wmKeyMap *keymap= WM_modalkeymap_get(keyconf, "View3D Dolly Modal");
|
||||
|
||||
/* this function is called for each spacetype, only needs to add map once */
|
||||
if(keymap) return;
|
||||
|
||||
keymap= WM_modalkeymap_add(keyconf, "View3D Dolly Modal", modal_items);
|
||||
|
||||
/* items for modal map */
|
||||
WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_RELEASE, KM_ANY, 0, VIEW_MODAL_CONFIRM);
|
||||
WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, VIEW_MODAL_CONFIRM);
|
||||
|
||||
/* disabled mode switching for now, can re-implement better, later on
|
||||
WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_RELEASE, KM_ANY, 0, VIEWROT_MODAL_SWITCH_ROTATE);
|
||||
WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_RELEASE, KM_ANY, 0, VIEWROT_MODAL_SWITCH_ROTATE);
|
||||
WM_modalkeymap_add_item(keymap, LEFTSHIFTKEY, KM_PRESS, KM_ANY, 0, VIEWROT_MODAL_SWITCH_MOVE);
|
||||
*/
|
||||
|
||||
/* assign map to operators */
|
||||
WM_modalkeymap_assign(keymap, "VIEW3D_OT_dolly");
|
||||
}
|
||||
|
||||
/* viewdolly_invoke() copied this function, changes here may apply there */
|
||||
static int viewzoom_invoke(bContext *C, wmOperator *op, wmEvent *event)
|
||||
{
|
||||
|
||||
@@ -165,6 +165,7 @@ void fly_modal_keymap(struct wmKeyConfig *keyconf);
|
||||
void viewrotate_modal_keymap(struct wmKeyConfig *keyconf);
|
||||
void viewmove_modal_keymap(struct wmKeyConfig *keyconf);
|
||||
void viewzoom_modal_keymap(struct wmKeyConfig *keyconf);
|
||||
void viewdolly_modal_keymap(struct wmKeyConfig *keyconf);
|
||||
|
||||
/* view3d_buttons.c */
|
||||
void VIEW3D_OT_properties(struct wmOperatorType *ot);
|
||||
|
||||
@@ -305,5 +305,6 @@ void view3d_keymap(wmKeyConfig *keyconf)
|
||||
viewrotate_modal_keymap(keyconf);
|
||||
viewmove_modal_keymap(keyconf);
|
||||
viewzoom_modal_keymap(keyconf);
|
||||
viewdolly_modal_keymap(keyconf);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user