WIP: Shift Extrude and Duplicate of meshes and objects #118968
|
@ -385,39 +385,39 @@ void ED_operatormacros_mesh()
|
|||
RNA_boolean_set(otmacro->ptr, "use_proportional_edit", false);
|
||||
RNA_boolean_set(otmacro->ptr, "mirror", false);
|
||||
|
||||
ot = WM_operatortype_append_macro("MESH_OT_split_move",
|
||||
"Split and Move",
|
||||
ot = WM_operatortype_append_macro("MESH_OT_duplicate_move",
|
||||
"Duplicate and Move",
|
||||
nullptr,
|
||||
OPTYPE_UNDO | OPTYPE_REGISTER);
|
||||
otmacro = WM_operatortype_macro_define(ot, "MESH_OT_split");
|
||||
otmacro = WM_operatortype_macro_define(ot, "MESH_OT_duplicate");
|
||||
otmacro = WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
|
||||
RNA_boolean_set(otmacro->ptr, "use_proportional_edit", false);
|
||||
RNA_boolean_set(otmacro->ptr, "mirror", false);
|
||||
|
||||
ot = WM_operatortype_append_macro("MESH_OT_context_split_rotate",
|
||||
"Split Region and Rotate",
|
||||
ot = WM_operatortype_append_macro("MESH_OT_context_duplicate_rotate",
|
||||
"Duplicate Region and Rotate",
|
||||
nullptr,
|
||||
OPTYPE_UNDO | OPTYPE_REGISTER);
|
||||
otmacro = WM_operatortype_macro_define(ot, "MESH_OT_split");
|
||||
otmacro = WM_operatortype_macro_define(ot, "MESH_OT_duplicate");
|
||||
otmacro = WM_operatortype_macro_define(ot, "TRANSFORM_OT_rotate");
|
||||
RNA_boolean_set(otmacro->ptr, "use_proportional_edit", false);
|
||||
RNA_boolean_set(otmacro->ptr, "mirror", false);
|
||||
|
||||
ot = WM_operatortype_append_macro("MESH_OT_context_split_trackball",
|
||||
"Split Region and Rotate(Trackball)",
|
||||
ot = WM_operatortype_append_macro("MESH_OT_context_duplicate_trackball",
|
||||
"Duplicate Region and Rotate(Trackball)",
|
||||
nullptr,
|
||||
OPTYPE_UNDO | OPTYPE_REGISTER);
|
||||
otmacro = WM_operatortype_macro_define(ot, "MESH_OT_split");
|
||||
otmacro = WM_operatortype_macro_define(ot, "MESH_OT_duplicate");
|
||||
otmacro = WM_operatortype_macro_define(ot, "TRANSFORM_OT_trackball");
|
||||
RNA_boolean_set(otmacro->ptr, "use_proportional_edit", false);
|
||||
RNA_boolean_set(otmacro->ptr, "mirror", false);
|
||||
|
||||
ot = WM_operatortype_append_macro("MESH_OT_context_split_scale",
|
||||
"Split Region and Scale",
|
||||
ot = WM_operatortype_append_macro("MESH_OT_context_duplicate_scale",
|
||||
"Duplicate Region and Scale",
|
||||
nullptr,
|
||||
OPTYPE_UNDO | OPTYPE_REGISTER);
|
||||
otmacro = WM_operatortype_macro_define(ot, "MESH_OT_split");
|
||||
otmacro = WM_operatortype_macro_define(ot, "TRANSFORM_OT_scale");
|
||||
otmacro = WM_operatortype_macro_define(ot, "MESH_OT_duplicate");
|
||||
otmacro = WM_operatortype_macro_define(ot, "TRANSFORM_OT_resize");
|
||||
RNA_boolean_set(otmacro->ptr, "use_proportional_edit", false);
|
||||
RNA_boolean_set(otmacro->ptr, "mirror", false);
|
||||
}
|
||||
|
|
|
@ -1808,7 +1808,7 @@ static void gizmogroup_init_properties_from_twtype(const bContext *C, wmGizmoGro
|
|||
case CTX_MODE_EDIT_MESH:
|
||||
ot_store.extra_translate = WM_operatortype_find("MESH_OT_extrude_context_move",
|
||||
true);
|
||||
ot_store.extra_translate2 = WM_operatortype_find("MESH_OT_split_move",
|
||||
ot_store.extra_translate2 = WM_operatortype_find("MESH_OT_duplicate_move",
|
||||
true);
|
||||
break;
|
||||
}
|
||||
|
@ -1845,7 +1845,7 @@ static void gizmogroup_init_properties_from_twtype(const bContext *C, wmGizmoGro
|
|||
ot_store.extra_trackball = WM_operatortype_find(
|
||||
"MESH_OT_extrude_context_trackball", true);
|
||||
ot_store.extra_trackball2 = WM_operatortype_find(
|
||||
"MESH_OT_context_split_trackball", true);
|
||||
"MESH_OT_context_duplicate_trackball", true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -1868,7 +1868,7 @@ static void gizmogroup_init_properties_from_twtype(const bContext *C, wmGizmoGro
|
|||
case CTX_MODE_EDIT_MESH:
|
||||
ot_store.extra_rotate = WM_operatortype_find("MESH_OT_extrude_context_rotate",
|
||||
true);
|
||||
ot_store.extra_rotate2 = WM_operatortype_find("MESH_OT_context_split_rotate",
|
||||
ot_store.extra_rotate2 = WM_operatortype_find("MESH_OT_context_duplicate_rotate",
|
||||
true);
|
||||
break;
|
||||
}
|
||||
|
@ -1901,7 +1901,7 @@ static void gizmogroup_init_properties_from_twtype(const bContext *C, wmGizmoGro
|
|||
break;
|
||||
case CTX_MODE_EDIT_MESH:
|
||||
ot_store.extra_resize = WM_operatortype_find("MESH_OT_extrude_context_resize", true);
|
||||
ot_store.extra_resize2 = WM_operatortype_find("MESH_OT_context_split_scale", true);
|
||||
ot_store.extra_resize2 = WM_operatortype_find("MESH_OT_context_duplicate_scale", true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1083,10 +1083,16 @@ void wm_gizmomap_modal_set(
|
|||
|
||||
struct wmGizmoOpElem *gzop = NULL;
|
||||
if (event->modifier & KM_SHIFT) {
|
||||
gzop = WM_gizmo_operator_get(gz, 16);
|
||||
|
||||
if (event->modifier & KM_ALT) {
|
||||
gzop = WM_gizmo_operator_get(gz, 15);
|
||||
}
|
||||
else {
|
||||
gzop = WM_gizmo_operator_get(gz, 16);
|
||||
}
|
||||
}
|
||||
|
||||
if (event->modifier & KM_ALT) {
|
||||
if ((event->modifier & KM_ALT )& (event->modifier & KM_SHIFT)) {
|
||||
gzop = WM_gizmo_operator_get(gz, 15);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue