Compare commits

...

51 Commits

Author SHA1 Message Date
Jaume Bellet ad55c52481 Merge branch 'mb-0007-transform-flags' into mb-0006-allow-no-modal-transform
Conflicts:
	source/blender/editors/transform/transform.hh
2024-03-12 07:33:27 +01:00
Jaume Bellet 22fd0a1504 Merge branch 'bf-blender' into mb-0007-transform-flags 2024-03-12 07:31:30 +01:00
Jaume Bellet c6d912c11d Merge branch 'mb-0007-transform-flags' into mb-0006-allow-no-modal-transform 2024-02-25 23:29:52 +01:00
Jaume Bellet 0028d9615d removing mb-0007 stuff, will be merged next 2024-02-25 23:29:39 +01:00
Jaume Bellet edd5201507 removing stored patch 2024-02-25 23:28:26 +01:00
Jaume Bellet 81cf99adcb Merge branch 'bf-blender' into mb-0006-allow-no-modal-transform 2024-02-25 23:27:49 +01:00
Jaume Bellet ec29495412 Merge branch 'bf-blender' into mb-0007-transform-flags 2024-02-23 23:40:57 +01:00
Jaume Bellet ad2920a5d6 re-apply 2023-12-03 20:49:53 +01:00
Jaume Bellet 23fa8ded8a renamed id folder 2023-12-03 20:37:03 +01:00
Jaume Bellet 2e54d6a02a reaply 2023-12-03 17:57:06 +01:00
Jaume Bellet c3fe8f4807 Merge branch 'bf-blender' into mb-0006-allow-no-modal-transform 2023-12-03 17:55:21 +01:00
Jaume Bellet eceb4d8685 renamed mblender folder and added patches.py 2023-12-03 17:51:53 +01:00
Jaume Bellet f786d77b0d rename id folder 2023-12-03 17:24:13 +01:00
Jaume Bellet 4fb4a45b86 Merge branch 'bf-blender' into mb-0007-transform-flags 2023-12-03 17:23:33 +01:00
Jaume Bellet b1225d5ae1 added patch 2023-11-13 00:08:42 +01:00
Jaume Bellet 43d596603b added apply unapply files 2023-11-13 00:01:48 +01:00
Jaume Bellet 18810610e4 traling spaces 2023-11-12 23:48:07 +01:00
Jaume Bellet 1bfd72dbd4 Merge branch 'bf-blender' into mb-0006-allow-no-modal-transform
Conflicts:
	source/blender/editors/transform/transform.cc
	source/blender/editors/transform/transform.hh
2023-11-12 23:43:11 +01:00
Jaume Bellet b739512d87 Merge branch 'bf-blender' into mb-0007-transform-flags 2023-11-12 23:21:20 +01:00
Jaume Bellet 86ad3ca1bc removing diff folder, missing ID file 2023-10-27 08:27:26 +02:00
Jaume Bellet 3ab99264fe reaply MB-0007 2023-10-27 08:24:04 +02:00
Jaume Bellet 009c237222 reaply MB-0007 2023-10-27 08:23:38 +02:00
Jaume Bellet 66ce9f98ca remove MB-0007 2023-10-27 08:21:40 +02:00
Jaume Bellet 3a62e7e895 Merge branch 'bf-blender' into mb-0006-allow-no-modal-transform 2023-10-27 08:07:46 +02:00
Jaume Bellet 51d3c090a5 removed changes previously applied from mb-0002 2023-10-27 08:06:20 +02:00
Jaume Bellet 76fe4cf0fc added MB-0007 2023-10-27 06:50:37 +02:00
Jaume Bellet 9ba6313089 remove patch 2023-10-27 06:50:09 +02:00
Jaume Bellet 76a0a15d58 removing patches located in bad place, and store MB_0007.h 2023-10-26 18:29:33 +02:00
Jaume Bellet 32cca28474 deleting diff folder 2023-10-26 18:25:54 +02:00
Jaume Bellet e5a324b9f2 apply MB-0007 2023-10-26 18:23:54 +02:00
Jaume Bellet 57da34764b Merge branch 'bf-blender' into mb-0007-transform-flags 2023-10-26 18:23:10 +02:00
Jaume Bellet c8dfbf9d48 removing MB-0007 2023-10-26 18:22:59 +02:00
Jaume Bellet a25d5aee92 Update 2023-10-21 00:08:28 +02:00
Jaume Bellet 86a728dae6 removing MB-0007 2023-10-21 00:07:51 +02:00
Jaume Bellet 91f875105c Merge remote-tracking branch 'origin/main' into mb-0006-allow-no-modal-transform 2023-10-21 00:07:30 +02:00
Jaume Bellet 7d94f2640f update MB-0007 patch 2023-10-20 23:55:49 +02:00
Jaume Bellet 16bd433ad9 Merge remote-tracking branch 'origin/main' into mb-0007-transform-flags 2023-10-20 23:55:26 +02:00
Jaume Bellet 75802f52c8 reaply 2023-10-20 23:22:02 +02:00
Jaume Bellet 6abb58caf0 removed patch, and patch diff 2023-10-20 23:19:42 +02:00
Jaume Bellet 5ad00f6c9e reaply mb-007 and updating diffs 2023-10-20 23:14:13 +02:00
Jaume Bellet fa0ef7aea6 Merge remote-tracking branch 'origin/main' into mb-0006-allow-no-modal-transform 2023-10-20 23:12:18 +02:00
Jaume Bellet 6943722b2d diff without mb-0007 2023-10-20 23:02:50 +02:00
Jaume Bellet c3fcf150c4 revert MB-0007 2023-10-20 23:00:44 +02:00
Jaume Bellet cfd54b8fb2 reaply patch 2023-10-20 22:54:26 +02:00
Jaume Bellet d67fdf10d5 remove content set on mb-0007 from patch 2023-10-20 22:52:02 +02:00
Jaume Bellet 943e7cff18 added mb-007 patch file, and aply 2023-10-20 22:23:49 +02:00
Jaume Bellet e955b78801 removed content set on mb-0007 pach. 2023-10-20 22:22:07 +02:00
Jaume Bellet f32566964a added diff file 2023-10-20 18:32:36 +02:00
Jaume Bellet 21b256495a added changes that were set on mb-0001 and mb-0005 2023-10-20 18:29:15 +02:00
Jaume Bellet d044fc6c9d added diff file
y
2023-10-19 19:16:19 +02:00
Jaume Bellet 0b1931ca31 Importing from previous works. 2023-10-19 19:11:50 +02:00
5 changed files with 89 additions and 2 deletions

View File

@ -734,6 +734,8 @@ static bool transform_modal_item_poll(const wmOperator *op, int value)
return false;
}
return t->vod != nullptr;
case TFM_MODAL_NO_MODAL_TRANSFORM:
break;
}
return true;
}
@ -789,6 +791,7 @@ wmKeyMap *transform_modal_keymap(wmKeyConfig *keyconf)
{TFM_MODAL_AUTOCONSTRAINTPLANE, "AUTOCONSTRAINPLANE", 0, "Automatic Constraint Plane", ""},
{TFM_MODAL_PRECISION, "PRECISION", 0, "Precision Mode", ""},
{TFM_MODAL_PASSTHROUGH_NAVIGATE, "PASSTHROUGH_NAVIGATE", 0, "Navigate", ""},
{TFM_MODAL_NO_MODAL_TRANSFORM, "NO_MODAL_TRANSFORM", 0, "Allow movements around the scene",""},
{0, nullptr, 0, nullptr, nullptr},
};
@ -988,12 +991,74 @@ static bool transform_event_modal_constraint(TransInfo *t, short modal_type)
return true;
}
static void switchTransformNoModal(TransInfo *t, const wmEvent *event) {
t->flag ^= T_TRANSFORM_NO_MODAL;
{
// Enable/Disable modal events allowing to be processed as non-modal events
wmKeyMapItem *kmi;
for (kmi =(wmKeyMapItem*) t->keymap->items.first; kmi; kmi = kmi->next)
{
if (ELEM(kmi->type, LEFTMOUSE, RIGHTMOUSE, MIDDLEMOUSE, WHEELDOWNMOUSE, WHEELUPMOUSE)) {
if ((t->flag & T_TRANSFORM_NO_MODAL) == 0) {
kmi->flag &= ~KMI_INACTIVE;
}
else {
kmi->flag |= KMI_INACTIVE;
}
}
}
}
if ((t->flag & T_TRANSFORM_NO_MODAL) == 0) {
// Transform Restart
}
}
int transformEvent(TransInfo *t, const wmEvent *event)
{
bool handled = false;
bool is_navigating = t->vod ? ((RegionView3D *)t->region->regiondata)->rflag & RV3D_NAVIGATING :
false;
if (t->flag & T_TRANSFORM_NO_MODAL) {
if (ELEM(event->val, KM_PRESS, KM_RELEASE) &&
ELEM(event->type, LEFTMOUSE, RIGHTMOUSE, MIDDLEMOUSE))
{
return OPERATOR_PASS_THROUGH;
}
else if (ELEM(event->type,
BUTTON4MOUSE,
BUTTON5MOUSE,
BUTTON6MOUSE,
BUTTON7MOUSE,
MOUSEPAN,
MOUSEZOOM,
MOUSEROTATE,
WHEELINMOUSE,
WHEELOUTMOUSE,
WHEELUPMOUSE,
WHEELDOWNMOUSE))
{
return OPERATOR_PASS_THROUGH;
}
else if (event->type == EVT_MODAL_MAP) {
switch (event->val) {
case TFM_MODAL_CANCEL:
t->state = TRANS_CANCEL;
break;
case TFM_MODAL_CONFIRM:
t->state = TRANS_CONFIRM;
break;
case TFM_MODAL_NO_MODAL_TRANSFORM:
t->redraw |= TREDRAW_HARD; // Redraw the Header
switchTransformNoModal(t, event);
break;
}
}
return 0;
}
/* Handle modal numinput events first, if already activated. */
if (!is_navigating && ((event->val == KM_PRESS) || (event->type == EVT_MODAL_MAP)) &&
hasNumInput(&t->num) && handleNumInput(t->context, &(t->num), event))
@ -1034,6 +1099,11 @@ int transformEvent(TransInfo *t, const wmEvent *event)
handled = true;
}
break;
case TFM_MODAL_NO_MODAL_TRANSFORM:
switchTransformNoModal(t, event);
handled = true;
t->redraw |= TREDRAW_HARD;
break;
case TFM_MODAL_TRANSLATE:
case TFM_MODAL_ROTATE:
case TFM_MODAL_RESIZE:
@ -2099,6 +2169,12 @@ bool initTransform(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *eve
calculatePropRatio(t);
calculateCenter(t);
if (t->spacetype == SPACE_VIEW3D) {
float p[3] = {0, 0, 0};
ED_view3d_win_to_3d_int((View3D*) t->view, t->region, p, event->mval, t->iloc);
}
if (event) {
/* Initialize accurate transform to settings requested by keymap. */
bool use_accurate = false;
@ -2209,7 +2285,7 @@ void transformApply(bContext *C, TransInfo *t)
int transformEnd(bContext *C, TransInfo *t)
{
int exit_code = OPERATOR_RUNNING_MODAL;
int exit_code = (t->flag & T_TRANSFORM_NO_MODAL) ? OPERATOR_HANDLED : OPERATOR_RUNNING_MODAL;
t->context = C;

View File

@ -150,6 +150,12 @@ enum eTFlag {
/** Special flag for when the transform code is called after keys have been duplicated. */
T_DUPLICATED_KEYFRAMES = 1 << 26,
/* Used on MB-0001-operator-repeat */
T_TRANSFORM_MULTIPLE = 1 << 27,
/* Used on MB-0006-allow-no-modal-transform*/
T_TRANSFORM_NO_MODAL = 1 << 28,
};
ENUM_OPERATORS(eTFlag, T_DUPLICATED_KEYFRAMES);
@ -285,6 +291,7 @@ enum {
TFM_MODAL_EDIT_SNAP_SOURCE_OFF = 35,
TFM_MODAL_PASSTHROUGH_NAVIGATE = 36,
TFM_MODAL_NO_MODAL_TRANSFORM = 37,
};
/** \} */
@ -561,6 +568,8 @@ struct TransInfo {
/** Mouse side of the current frame, 'L', 'R' or 'B'. */
char frame_side;
float iloc[3]; /* Initial location */
/** Copy from #RegionView3D, prevents feedback. */
float viewmat[4][4];
/** And to make sure we don't have to. */

View File

@ -463,7 +463,7 @@ static int transform_modal(bContext *C, wmOperator *op, const wmEvent *event)
exit_code |= transformEnd(C, t);
if ((exit_code & OPERATOR_RUNNING_MODAL) == 0) {
if ((exit_code & (OPERATOR_CANCELLED | OPERATOR_FINISHED))) {
transformops_exit(C, op);
exit_code &= ~OPERATOR_PASS_THROUGH; /* Preventively remove pass-through. */
}

View File

@ -0,0 +1 @@
/* Empty File */

View File

@ -0,0 +1 @@
/* Empty File */