Fix T70316: Custom "Delete Keyframes" shortcut still requires
confirmation Deleting keyframes in the dopesheet or graph editor always required confirmation, even if used ouside of the "Delete" menus. Now add a "confirm" option [same as for deleting objects], which can be disabled for immediate keyframe deletion. This will also change the default behavior and bring this in line with how object deletion works so there is one shortcut for bringing up the menu/confirmation and another shortcut to delete immediately without requiring confirmation / another click: - Blender Default keymap: "X" for menu, "Del" for immediate - Industry Compatible: "Backspace" for menu, "Del" for immediate Maniphest Tasks: T70316 Differential Revision: https://developer.blender.org/D9651
This commit is contained in:
parent
4b56c18290
commit
290b6d7ef3
Notes:
blender-bot
2023-02-14 00:39:31 +01:00
Referenced by issue #70316, Custom "Delete Keyframes" shortcut still requires confirmation
|
@ -1563,7 +1563,7 @@ def km_graph_editor(params):
|
|||
("graph.sample", {"type": 'O', "value": 'PRESS', "shift": True, "alt": True}, None),
|
||||
("graph.bake", {"type": 'C', "value": 'PRESS', "alt": True}, None),
|
||||
op_menu("GRAPH_MT_delete", {"type": 'X', "value": 'PRESS'}),
|
||||
op_menu("GRAPH_MT_delete", {"type": 'DEL', "value": 'PRESS'}),
|
||||
("graph.delete", {"type": 'DEL', "value": 'PRESS'}, {"properties": [("confirm", False)]}),
|
||||
("graph.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None),
|
||||
("graph.keyframe_insert", {"type": 'I', "value": 'PRESS'}, None),
|
||||
("graph.click_insert", {"type": params.action_mouse, "value": 'CLICK', "ctrl": True},
|
||||
|
@ -2113,7 +2113,7 @@ def km_dopesheet(params):
|
|||
("action.keyframe_type", {"type": 'R', "value": 'PRESS'}, None),
|
||||
("action.sample", {"type": 'O', "value": 'PRESS', "shift": True, "alt": True}, None),
|
||||
op_menu("DOPESHEET_MT_delete", {"type": 'X', "value": 'PRESS'}),
|
||||
op_menu("DOPESHEET_MT_delete", {"type": 'DEL', "value": 'PRESS'}),
|
||||
("action.delete", {"type": 'DEL', "value": 'PRESS'}, {"properties": [("confirm", False)]}),
|
||||
("action.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None),
|
||||
("action.keyframe_insert", {"type": 'I', "value": 'PRESS'}, None),
|
||||
("action.copy", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
|
||||
|
|
|
@ -929,7 +929,7 @@ def km_graph_editor(params):
|
|||
("graph.select_less", {"type": 'DOWN_ARROW', "value": 'PRESS', "repeat": True}, None),
|
||||
("graph.select_linked", {"type": 'RIGHT_BRACKET', "value": 'PRESS'}, None),
|
||||
op_menu("GRAPH_MT_delete", {"type": 'BACK_SPACE', "value": 'PRESS'}),
|
||||
op_menu("GRAPH_MT_delete", {"type": 'DEL', "value": 'PRESS'}),
|
||||
("graph.delete", {"type": 'DEL', "value": 'PRESS'}, {"properties": [("confirm", False)]}),
|
||||
*_template_items_context_menu("GRAPH_MT_context_menu", {"type": 'RIGHTMOUSE', "value": 'PRESS'}),
|
||||
("graph.duplicate_move", {"type": 'D', "value": 'PRESS', "ctrl": True}, None),
|
||||
("graph.keyframe_insert", {"type": 'S', "value": 'PRESS'}, None),
|
||||
|
@ -1416,7 +1416,7 @@ def km_dopesheet(params):
|
|||
op_menu_pie("DOPESHEET_MT_snap_pie", {"type": 'X', "value": 'PRESS', "shift": True}),
|
||||
*_template_items_context_menu("DOPESHEET_MT_context_menu", {"type": 'RIGHTMOUSE', "value": 'PRESS'}),
|
||||
op_menu("DOPESHEET_MT_delete", {"type": 'BACK_SPACE', "value": 'PRESS'}),
|
||||
op_menu("DOPESHEET_MT_delete", {"type": 'DEL', "value": 'PRESS'}),
|
||||
("action.delete", {"type": 'DEL', "value": 'PRESS'}, {"properties": [("confirm", False)]}),
|
||||
("action.duplicate_move", {"type": 'D', "value": 'PRESS', "ctrl": True}, None),
|
||||
("action.keyframe_insert", {"type": 'S', "value": 'PRESS'}, None),
|
||||
("action.copy", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
|
||||
|
|
|
@ -1036,12 +1036,13 @@ void ACTION_OT_delete(wmOperatorType *ot)
|
|||
ot->description = "Remove all selected keyframes";
|
||||
|
||||
/* api callbacks */
|
||||
ot->invoke = WM_operator_confirm;
|
||||
ot->invoke = WM_operator_confirm_or_exec;
|
||||
ot->exec = actkeys_delete_exec;
|
||||
ot->poll = ED_operator_action_active;
|
||||
|
||||
/* flags */
|
||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
||||
WM_operator_properties_confirm_or_exec(ot);
|
||||
}
|
||||
|
||||
/* ******************** Clean Keyframes Operator ************************* */
|
||||
|
|
|
@ -757,12 +757,13 @@ void GRAPH_OT_delete(wmOperatorType *ot)
|
|||
ot->description = "Remove all selected keyframes";
|
||||
|
||||
/* API callbacks */
|
||||
ot->invoke = WM_operator_confirm;
|
||||
ot->invoke = WM_operator_confirm_or_exec;
|
||||
ot->exec = graphkeys_delete_exec;
|
||||
ot->poll = graphop_editable_keyframes_poll;
|
||||
|
||||
/* Flags */
|
||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
||||
WM_operator_properties_confirm_or_exec(ot);
|
||||
}
|
||||
|
||||
/** \} */
|
||||
|
|
Loading…
Reference in New Issue