[Bf-blender-cvs] [a3f5d4cb147] blender2.8: Keymap: Make Ctrl-Tab toggles pose mode

Campbell Barton noreply at git.blender.org
Thu Jul 5 21:30:37 CEST 2018


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);



More information about the Bf-blender-cvs mailing list