Commit: a3f5d4cb147d7f1186e9614c1f253efcd7b562ec
Author: Campbell Barton
Date:   Thu Jul 5 21:28:25 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBa3f5d4cb147d7f1186e9614c1f253efcd7b562ec

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.

===================================================================

M       source/blender/editors/object/object_ops.c
M       source/blender/editors/space_view3d/view3d_buttons.c
M       source/blender/editors/space_view3d/view3d_intern.h
M       source/blender/editors/space_view3d/view3d_ops.c

===================================================================

diff --git a/source/blender/editors/object/object_ops.c 
b/source/blender/editors/object/object_ops.c
index cae8005c86c..43d993531bc 100644
--- a/source/blender/editors/object/object_ops.c
+++ b/source/blender/editors/object/object_ops.c
@@ -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);
diff --git a/source/blender/editors/space_view3d/view3d_buttons.c 
b/source/blender/editors/space_view3d/view3d_buttons.c
index f5e8bf10817..bcf9a7c4ad1 100644
--- a/source/blender/editors/space_view3d/view3d_buttons.c
+++ b/source/blender/editors/space_view3d/view3d_buttons.c
@@ -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;
+}
diff --git a/source/blender/editors/space_view3d/view3d_intern.h 
b/source/blender/editors/space_view3d/view3d_intern.h
index 1b6e4213513..b74a40969a1 100644
--- a/source/blender/editors/space_view3d/view3d_intern.h
+++ b/source/blender/editors/space_view3d/view3d_intern.h
@@ -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 */
diff --git a/source/blender/editors/space_view3d/view3d_ops.c 
b/source/blender/editors/space_view3d/view3d_ops.c
index 4d5e6661bd0..00f0dea8fe2 100644
--- a/source/blender/editors/space_view3d/view3d_ops.c
+++ b/source/blender/editors/space_view3d/view3d_ops.c
@@ -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);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to