Keymap: Make Ctrl-Tab toggles pose mode

Showing a pie menu is redundant since tab is already
mapped to edit mode.

Bypass the menu for pose mode toggle.
This commit is contained in:
2018-07-05 21:28:25 +02:00
parent 72e04f9890
commit a3f5d4cb14
4 changed files with 33 additions and 1 deletions

View File

@@ -297,7 +297,11 @@ void ED_keymap_object(wmKeyConfig *keyconf)
RNA_enum_set(kmi->ptr, "mode", OB_MODE_EDIT);
RNA_boolean_set(kmi->ptr, "toggle", true);
kmi = WM_keymap_add_menu_pie(keymap, "VIEW3D_MT_object_mode_pie", TABKEY, KM_PRESS, KM_CTRL, 0);
#if 0
WM_keymap_add_menu_pie(keymap, "VIEW3D_MT_object_mode_pie", TABKEY, KM_PRESS, KM_CTRL, 0);
#else
WM_keymap_add_item(keymap, "VIEW3D_OT_object_mode_pie_or_toggle", TABKEY, KM_PRESS, KM_CTRL, 0);
#endif
#ifdef USE_WM_KEYMAP_27X
WM_keymap_add_item(keymap, "OBJECT_OT_origin_set", CKEY, KM_PRESS, KM_ALT | KM_SHIFT | KM_CTRL, 0);

View File

@@ -1222,3 +1222,29 @@ void VIEW3D_OT_properties(wmOperatorType *ot)
/* flags */
ot->flag = 0;
}
static int view3d_object_mode_menu(bContext *C, wmOperator *UNUSED(op))
{
Object *ob = CTX_data_active_object(C);
if (ob->type == OB_ARMATURE) {
ED_object_mode_toggle(C, OB_MODE_POSE);
return OPERATOR_CANCELLED;
}
else {
UI_pie_menu_invoke(C, "VIEW3D_MT_object_mode_pie", CTX_wm_window(C)->eventstate);
return OPERATOR_CANCELLED;
}
}
void VIEW3D_OT_object_mode_pie_or_toggle(wmOperatorType *ot)
{
ot->name = "Object Mode Menu";
ot->description = "";
ot->idname = "VIEW3D_OT_object_mode_pie_or_toggle";
ot->exec = view3d_object_mode_menu;
ot->poll = ED_operator_view3d_active;
/* flags */
ot->flag = 0;
}

View File

@@ -216,6 +216,7 @@ void viewdolly_modal_keymap(struct wmKeyConfig *keyconf);
/* view3d_buttons.c */
void VIEW3D_OT_properties(struct wmOperatorType *ot);
void VIEW3D_OT_object_mode_pie_or_toggle(struct wmOperatorType *ot);
void view3d_buttons_register(struct ARegionType *art);
/* view3d_camera_control.c */

View File

@@ -212,6 +212,7 @@ void view3d_operatortypes(void)
WM_operatortype_append(VIEW3D_OT_pastebuffer);
WM_operatortype_append(VIEW3D_OT_properties);
WM_operatortype_append(VIEW3D_OT_object_mode_pie_or_toggle);
WM_operatortype_append(VIEW3D_OT_toolshelf);
WM_operatortype_append(VIEW3D_OT_snap_selected_to_grid);