Keymap: Modifiers to control mesh elem switching
Shift/Ctrl control extend/expand when number keys are used to switch modes.
This commit is contained in:
parent
21b6983b9d
commit
864a4cf64b
|
@ -336,23 +336,21 @@ void ED_keymap_mesh(wmKeyConfig *keyconf)
|
|||
RNA_boolean_set(kmi->ptr, "vertex_only", true);
|
||||
|
||||
/* selecting */
|
||||
|
||||
kmi = WM_keymap_add_item(keymap, "MESH_OT_select_mode", ONEKEY, KM_PRESS, 0, 0);
|
||||
RNA_enum_set(kmi->ptr, "type", SCE_SELECT_VERTEX);
|
||||
kmi = WM_keymap_add_item(keymap, "MESH_OT_select_mode", TWOKEY, KM_PRESS, 0, 0);
|
||||
RNA_enum_set(kmi->ptr, "type", SCE_SELECT_EDGE);
|
||||
kmi = WM_keymap_add_item(keymap, "MESH_OT_select_mode", THREEKEY, KM_PRESS, 0, 0);
|
||||
RNA_enum_set(kmi->ptr, "type", SCE_SELECT_FACE);
|
||||
|
||||
kmi = WM_keymap_add_item(keymap, "MESH_OT_select_mode", ONEKEY, KM_PRESS, KM_SHIFT, 0);
|
||||
RNA_enum_set(kmi->ptr, "type", SCE_SELECT_VERTEX);
|
||||
RNA_boolean_set(kmi->ptr, "use_extend", true);
|
||||
kmi = WM_keymap_add_item(keymap, "MESH_OT_select_mode", TWOKEY, KM_PRESS, KM_SHIFT, 0);
|
||||
RNA_enum_set(kmi->ptr, "type", SCE_SELECT_EDGE);
|
||||
RNA_boolean_set(kmi->ptr, "use_extend", true);
|
||||
kmi = WM_keymap_add_item(keymap, "MESH_OT_select_mode", THREEKEY, KM_PRESS, KM_SHIFT, 0);
|
||||
RNA_enum_set(kmi->ptr, "type", SCE_SELECT_FACE);
|
||||
RNA_boolean_set(kmi->ptr, "use_extend", true);
|
||||
for (int i = 0; i < 4; i++) {
|
||||
const bool is_extend = (i & 1);
|
||||
const bool is_expand = (i & 2);
|
||||
const int key_modifier = (is_extend ? KM_SHIFT : 0) | (is_expand ? KM_CTRL : 0);
|
||||
for (int j = 0; j < 3; j++) {
|
||||
kmi = WM_keymap_add_item(keymap, "MESH_OT_select_mode", ONEKEY + j, KM_PRESS, key_modifier, 0);
|
||||
RNA_enum_set(kmi->ptr, "type", SCE_SELECT_VERTEX << j);
|
||||
if (is_extend) {
|
||||
RNA_boolean_set(kmi->ptr, "use_extend", true);
|
||||
}
|
||||
if (is_expand) {
|
||||
RNA_boolean_set(kmi->ptr, "use_expand", true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* standard mouse selection goes via space_view3d */
|
||||
kmi = WM_keymap_add_item(keymap, "MESH_OT_loop_select", SELECTMOUSE, KM_PRESS, KM_ALT, 0);
|
||||
|
|
Loading…
Reference in New Issue