Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCian Jinks <cjinks99@gmail.com>2021-09-27 00:18:24 +0300
committerCian Jinks <cjinks99@gmail.com>2021-09-27 00:18:24 +0300
commit93b36fad684f62119a7a27c5ba37902643574ae5 (patch)
treee1507455b2c8df8bd3a8e0d59e52bca93eb3c285 /source/blender/editors/mesh/editmesh_knife.c
parent80f7bc6d8e7e7a5e543df5418313c04df5140c43 (diff)
Knife: Expose XYZ axis locking in modal keymap
A small quality of life improvement that will allow users to change the keys used for axis locking.
Diffstat (limited to 'source/blender/editors/mesh/editmesh_knife.c')
-rw-r--r--source/blender/editors/mesh/editmesh_knife.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/source/blender/editors/mesh/editmesh_knife.c b/source/blender/editors/mesh/editmesh_knife.c
index e76a9641811..13519fad89d 100644
--- a/source/blender/editors/mesh/editmesh_knife.c
+++ b/source/blender/editors/mesh/editmesh_knife.c
@@ -333,6 +333,9 @@ enum {
KNF_MODAL_SHOW_DISTANCE_ANGLE_TOGGLE,
KNF_MODAL_DEPTH_TEST_TOGGLE,
KNF_MODAL_PANNING,
+ KNF_MODAL_X_AXIS,
+ KNF_MODAL_Y_AXIS,
+ KNF_MODAL_Z_AXIS,
KNF_MODAL_ADD_CUT_CLOSED,
};
@@ -1112,7 +1115,7 @@ static void knife_update_header(bContext *C, wmOperator *op, KnifeTool_OpData *k
"%s: start/define cut, %s: close cut, %s: new cut, "
"%s: midpoint snap (%s), %s: ignore snap (%s), "
"%s: angle constraint %.2f(%.2f) (%s%s%s%s), %s: cut through (%s), "
- "%s: panning, XYZ: orientation lock (%s), "
+ "%s: panning, %s%s%s: orientation lock (%s), "
"%s: distance/angle measurements (%s), "
"%s: x-ray (%s)"),
WM_MODALKEY(KNF_MODAL_CONFIRM),
@@ -1144,6 +1147,9 @@ static void knife_update_header(bContext *C, wmOperator *op, KnifeTool_OpData *k
WM_MODALKEY(KNF_MODAL_CUT_THROUGH_TOGGLE),
WM_bool_as_string(kcd->cut_through),
WM_MODALKEY(KNF_MODAL_PANNING),
+ WM_MODALKEY(KNF_MODAL_X_AXIS),
+ WM_MODALKEY(KNF_MODAL_Y_AXIS),
+ WM_MODALKEY(KNF_MODAL_Z_AXIS),
(kcd->axis_constrained ? kcd->axis_string : WM_bool_as_string(kcd->axis_constrained)),
WM_MODALKEY(KNF_MODAL_SHOW_DISTANCE_ANGLE_TOGGLE),
WM_bool_as_string(kcd->show_dist_angle),
@@ -4307,6 +4313,9 @@ wmKeyMap *knifetool_modal_keymap(wmKeyConfig *keyconf)
{KNF_MODAL_ADD_CUT, "ADD_CUT", 0, "Add Cut", ""},
{KNF_MODAL_ADD_CUT_CLOSED, "ADD_CUT_CLOSED", 0, "Add Cut Closed", ""},
{KNF_MODAL_PANNING, "PANNING", 0, "Panning", ""},
+ {KNF_MODAL_X_AXIS, "X_AXIS", 0, "X Axis Locking", ""},
+ {KNF_MODAL_Y_AXIS, "Y_AXIS", 0, "Y Axis Locking", ""},
+ {KNF_MODAL_Z_AXIS, "Z_AXIS", 0, "Z Axis Locking", ""},
{0, NULL, 0, NULL, NULL},
};
@@ -4630,18 +4639,18 @@ static int knifetool_modal(bContext *C, wmOperator *op, const wmEvent *event)
}
/* Constrain axes with X,Y,Z keys. */
- if (event->val == KM_PRESS && ELEM(event->type, EVT_XKEY, EVT_YKEY, EVT_ZKEY)) {
- if (event->type == EVT_XKEY && kcd->constrain_axis != KNF_CONSTRAIN_AXIS_X) {
+ if (ELEM(event->val, KNF_MODAL_X_AXIS, KNF_MODAL_Y_AXIS, KNF_MODAL_Z_AXIS)) {
+ if (event->val == KNF_MODAL_X_AXIS && kcd->constrain_axis != KNF_CONSTRAIN_AXIS_X) {
kcd->constrain_axis = KNF_CONSTRAIN_AXIS_X;
kcd->constrain_axis_mode = KNF_CONSTRAIN_AXIS_MODE_GLOBAL;
kcd->axis_string[0] = 'X';
}
- else if (event->type == EVT_YKEY && kcd->constrain_axis != KNF_CONSTRAIN_AXIS_Y) {
+ else if (event->val == KNF_MODAL_Y_AXIS && kcd->constrain_axis != KNF_CONSTRAIN_AXIS_Y) {
kcd->constrain_axis = KNF_CONSTRAIN_AXIS_Y;
kcd->constrain_axis_mode = KNF_CONSTRAIN_AXIS_MODE_GLOBAL;
kcd->axis_string[0] = 'Y';
}
- else if (event->type == EVT_ZKEY && kcd->constrain_axis != KNF_CONSTRAIN_AXIS_Z) {
+ else if (event->val == KNF_MODAL_Z_AXIS && kcd->constrain_axis != KNF_CONSTRAIN_AXIS_Z) {
kcd->constrain_axis = KNF_CONSTRAIN_AXIS_Z;
kcd->constrain_axis_mode = KNF_CONSTRAIN_AXIS_MODE_GLOBAL;
kcd->axis_string[0] = 'Z';