Tool System: loop cut, confirm on release

When accessed as a tool it felt awkward to click twice to execute.
This commit is contained in:
Campbell Barton 2018-08-22 14:19:55 +10:00
parent f6778ea63a
commit cf038bcb15
Notes: blender-bot 2023-02-14 05:53:37 +01:00
Referenced by issue #55036, Tool System Todo
2 changed files with 17 additions and 6 deletions

View File

@ -689,7 +689,11 @@ class _defs_edit_mesh:
icon="ops.mesh.loopcut_slide",
widget="VIEW3D_GGT_mesh_preselect_edgering",
keymap=(
("mesh.loopcut_slide", dict(), dict(type='ACTIONMOUSE', value='PRESS')),
(
"mesh.loopcut_slide",
dict(TRANSFORM_OT_edge_slide=dict(release_confirm=True)),
dict(type='ACTIONMOUSE', value='PRESS'),
),
),
draw_settings=draw_settings,
)

View File

@ -233,14 +233,12 @@ void ED_operatormacros_mesh(void)
ot = WM_operatortype_append_macro("MESH_OT_loopcut_slide", "Loop Cut and Slide", "Cut mesh loop and slide it",
OPTYPE_UNDO | OPTYPE_REGISTER);
WM_operatortype_macro_define(ot, "MESH_OT_loopcut");
otmacro = WM_operatortype_macro_define(ot, "TRANSFORM_OT_edge_slide");
RNA_boolean_set(otmacro->ptr, "release_confirm", false);
WM_operatortype_macro_define(ot, "TRANSFORM_OT_edge_slide");
ot = WM_operatortype_append_macro("MESH_OT_offset_edge_loops_slide", "Offset Edge Slide", "Offset edge loop slide",
OPTYPE_UNDO | OPTYPE_REGISTER);
WM_operatortype_macro_define(ot, "MESH_OT_offset_edge_loops");
otmacro = WM_operatortype_macro_define(ot, "TRANSFORM_OT_edge_slide");
RNA_boolean_set(otmacro->ptr, "release_confirm", false);
RNA_boolean_set(otmacro->ptr, "single_side", true);
ot = WM_operatortype_append_macro("MESH_OT_duplicate_move", "Add Duplicate", "Duplicate mesh and move",
@ -333,8 +331,17 @@ void ED_keymap_mesh(wmKeyConfig *keyconf)
keymap = WM_keymap_find(keyconf, "Mesh", 0, 0);
keymap->poll = ED_operator_editmesh;
WM_keymap_add_item(keymap, "MESH_OT_loopcut_slide", RKEY, KM_PRESS, KM_CTRL, 0);
WM_keymap_add_item(keymap, "MESH_OT_offset_edge_loops_slide", RKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
kmi = WM_keymap_add_item(keymap, "MESH_OT_loopcut_slide", RKEY, KM_PRESS, KM_CTRL, 0);
{
PointerRNA macro_ptr = RNA_pointer_get(kmi->ptr, "TRANSFORM_OT_edge_slide");
RNA_boolean_set(&macro_ptr, "release_confirm", false);
}
kmi = WM_keymap_add_item(keymap, "MESH_OT_offset_edge_loops_slide", RKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
{
PointerRNA macro_ptr = RNA_pointer_get(kmi->ptr, "TRANSFORM_OT_edge_slide");
RNA_boolean_set(&macro_ptr, "release_confirm", false);
}
WM_keymap_add_item(keymap, "MESH_OT_inset", IKEY, KM_PRESS, 0, 0);
#ifdef USE_WM_KEYMAP_27X
WM_keymap_add_item(keymap, "MESH_OT_poke", PKEY, KM_PRESS, KM_ALT, 0);