Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/blender/editors/space_view3d/view3d_edit.c4
-rw-r--r--source/blender/editors/space_view3d/view3d_ops.c3
-rw-r--r--source/blender/editors/transform/transform.c2
-rw-r--r--source/blender/editors/transform/transform_generics.c2
-rw-r--r--source/blender/editors/transform/transform_manipulator.c9
-rw-r--r--source/blender/editors/transform/transform_ops.c17
-rw-r--r--source/blender/makesdna/DNA_userdef_types.h2
-rw-r--r--source/blender/makesrna/intern/rna_userdef.c4
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c5
9 files changed, 25 insertions, 23 deletions
diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c
index 45675d44d31..12ba14ab189 100644
--- a/source/blender/editors/space_view3d/view3d_edit.c
+++ b/source/blender/editors/space_view3d/view3d_edit.c
@@ -2376,8 +2376,8 @@ void VIEW3D_OT_manipulator(wmOperatorType *ot)
ot->poll= ED_operator_view3d_active;
- /* rna later */
- RNA_def_boolean_vector(ot->srna, "constraint_axis", 3, NULL, "Constraint Axis", "");
+ /* properties to pass to transform */
+ Transform_Properties(ot, P_CONSTRAINT);
}
static int enable_manipulator_invoke(bContext *C, wmOperator *op, wmEvent *event)
diff --git a/source/blender/editors/space_view3d/view3d_ops.c b/source/blender/editors/space_view3d/view3d_ops.c
index ccc2717556d..d2fda2f2f76 100644
--- a/source/blender/editors/space_view3d/view3d_ops.c
+++ b/source/blender/editors/space_view3d/view3d_ops.c
@@ -115,7 +115,8 @@ void view3d_keymap(wmKeyConfig *keyconf)
/* only for region 3D window */
keymap= WM_keymap_find(keyconf, "3D View", SPACE_VIEW3D, 0);
- WM_keymap_verify_item(keymap, "VIEW3D_OT_manipulator", LEFTMOUSE, KM_PRESS, KM_ANY, 0);
+ kmi = WM_keymap_verify_item(keymap, "VIEW3D_OT_manipulator", LEFTMOUSE, KM_PRESS, KM_ANY, 0);
+ RNA_boolean_set(kmi->ptr, "release_confirm", 1);
/*
* Doesn't work with KM_SHIFT, have to use KM_ANY and filter in invoke
* */
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index 13684708f8e..498313838df 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -1032,7 +1032,7 @@ int transformEvent(TransInfo *t, wmEvent *event)
}
/* confirm transform if launch key is released after mouse move */
- if (t->flag & T_RELEASE_CONFIRM || t->state != TRANS_STARTING)
+ if (t->flag & T_RELEASE_CONFIRM)
{
/* XXX Keyrepeat bug in Xorg fucks this up, will test when fixed */
if (event->type == t->launch_event && (t->launch_event == LEFTMOUSE || t->launch_event == RIGHTMOUSE))
diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c
index e9ee45259e9..8bbeec63155 100644
--- a/source/blender/editors/transform/transform_generics.c
+++ b/source/blender/editors/transform/transform_generics.c
@@ -1000,7 +1000,7 @@ int initTransInfo (bContext *C, TransInfo *t, wmOperator *op, wmEvent *event)
}
else
{
- if (U.flag & USER_DRAGIMMEDIATE)
+ if (U.flag & USER_RELEASECONFIRM)
{
t->flag |= T_RELEASE_CONFIRM;
}
diff --git a/source/blender/editors/transform/transform_manipulator.c b/source/blender/editors/transform/transform_manipulator.c
index 5e7c6fc9d3d..b11f35dd363 100644
--- a/source/blender/editors/transform/transform_manipulator.c
+++ b/source/blender/editors/transform/transform_manipulator.c
@@ -1551,6 +1551,8 @@ static int manipulator_selectbuf(ScrArea *sa, ARegion *ar, short *mval, float ho
return 0;
}
+int wm_operator_invoke(bContext *C, wmOperatorType *ot, wmEvent *event, PointerRNA *properties, ReportList *reports);
+
/* return 0; nothing happened */
int BIF_do_manipulator(bContext *C, struct wmEvent *event, wmOperator *op)
{
@@ -1564,6 +1566,9 @@ int BIF_do_manipulator(bContext *C, struct wmEvent *event, wmOperator *op)
if(!(v3d->twflag & V3D_USE_MANIPULATOR)) return 0;
if(!(v3d->twflag & V3D_DRAW_MANIPULATOR)) return 0;
+ /* Force orientation */
+ RNA_enum_set(op->ptr, "constraint_orientation", v3d->twmode);
+
// find the hotspots first test narrow hotspot
val= manipulator_selectbuf(sa, ar, event->mval, 0.5f*(float)U.tw_hotspot);
if(val) {
@@ -1603,6 +1608,7 @@ int BIF_do_manipulator(bContext *C, struct wmEvent *event, wmOperator *op)
}
RNA_boolean_set_array(op->ptr, "constraint_axis", constraint_axis);
WM_operator_name_call(C, "TRANSFORM_OT_translate", WM_OP_INVOKE_DEFAULT, op->ptr);
+ //wm_operator_invoke(C, WM_operatortype_find("TRANSFORM_OT_translate", 0), event, op->ptr, NULL);
}
else if (drawflags & MAN_SCALE_C) {
switch(drawflags) {
@@ -1633,8 +1639,10 @@ int BIF_do_manipulator(bContext *C, struct wmEvent *event, wmOperator *op)
}
RNA_boolean_set_array(op->ptr, "constraint_axis", constraint_axis);
WM_operator_name_call(C, "TRANSFORM_OT_resize", WM_OP_INVOKE_DEFAULT, op->ptr);
+ //wm_operator_invoke(C, WM_operatortype_find("TRANSFORM_OT_resize", 0), event, op->ptr, NULL);
}
else if (drawflags == MAN_ROT_T) { /* trackball need special case, init is different */
+ //wm_operator_invoke(C, WM_operatortype_find("TRANSFORM_OT_trackball", 0), event, op->ptr, NULL);
WM_operator_name_call(C, "TRANSFORM_OT_trackball", WM_OP_INVOKE_DEFAULT, op->ptr);
}
else if (drawflags & MAN_ROT_C) {
@@ -1651,6 +1659,7 @@ int BIF_do_manipulator(bContext *C, struct wmEvent *event, wmOperator *op)
}
RNA_boolean_set_array(op->ptr, "constraint_axis", constraint_axis);
WM_operator_name_call(C, "TRANSFORM_OT_rotate", WM_OP_INVOKE_DEFAULT, op->ptr);
+ //wm_operator_invoke(C, WM_operatortype_find("TRANSFORM_OT_rotate", 0), event, op->ptr, NULL);
}
}
/* after transform, restore drawflags */
diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c
index 53cbfd208b6..6059d9d4697 100644
--- a/source/blender/editors/transform/transform_ops.c
+++ b/source/blender/editors/transform/transform_ops.c
@@ -381,23 +381,10 @@ static int transform_invoke(bContext *C, wmOperator *op, wmEvent *event)
}
}
-#define P_MIRROR (1 << 0)
-#define P_PROPORTIONAL (1 << 1)
-#define P_AXIS (1 << 2)
-#define P_SNAP (1 << 3)
-#define P_GEO_SNAP (P_SNAP|(1 << 4))
-#define P_ALIGN_SNAP (P_GEO_SNAP|(1 << 5))
-#define P_CONSTRAINT (1 << 6)
-
-
void Transform_Properties(struct wmOperatorType *ot, int flags)
{
PropertyRNA *prop;
- // Add confirm method all the time
- prop = RNA_def_boolean(ot->srna, "release_confirm", 0, "Confirm on Release", "Confirm operation when releasing button");
- RNA_def_property_flag(prop, PROP_HIDDEN);
-
if (flags & P_AXIS)
{
prop= RNA_def_property(ot->srna, "axis", PROP_FLOAT, PROP_DIRECTION);
@@ -440,6 +427,10 @@ void Transform_Properties(struct wmOperatorType *ot, int flags)
}
}
}
+
+ // Add confirm method all the time. At the end because it's not really that important and should be hidden
+ prop = RNA_def_boolean(ot->srna, "release_confirm", 0, "Confirm on Release", "Always confirm operation when releasing button");
+ //RNA_def_property_flag(prop, PROP_HIDDEN);
}
void TRANSFORM_OT_translate(struct wmOperatorType *ot)
diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h
index e0a32d9ce6c..d5a2b504962 100644
--- a/source/blender/makesdna/DNA_userdef_types.h
+++ b/source/blender/makesdna/DNA_userdef_types.h
@@ -408,7 +408,7 @@ extern UserDef U; /* from blenkernel blender.c */
#define USER_ADD_EDITMODE (1 << 18)
#define USER_ADD_VIEWALIGNED (1 << 19)
#define USER_RELPATHS (1 << 20)
-#define USER_DRAGIMMEDIATE (1 << 21)
+#define USER_RELEASECONFIRM (1 << 21)
#define USER_SCRIPT_AUTOEXEC_DISABLE (1 << 22)
#define USER_FILENOUI (1 << 23)
#define USER_NONEGFRAMES (1 << 24)
diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c
index 68e6c20d8aa..6b78ddaeae1 100644
--- a/source/blender/makesrna/intern/rna_userdef.c
+++ b/source/blender/makesrna/intern/rna_userdef.c
@@ -2085,8 +2085,8 @@ static void rna_def_userdef_edit(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Enter Edit Mode", "Enter Edit Mode automatically after adding a new object");
prop= RNA_def_property(srna, "drag_immediately", PROP_BOOLEAN, PROP_NONE);
- RNA_def_property_boolean_sdna(prop, NULL, "flag", USER_DRAGIMMEDIATE);
- RNA_def_property_ui_text(prop, "Drag Immediately", "Moving things with a mouse drag doesn't require a click to confirm (Best for tablet users)");
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", USER_RELEASECONFIRM);
+ RNA_def_property_ui_text(prop, "Release confirm", "Moving things with a mouse drag confirms when releasing the button");
/* Undo */
prop= RNA_def_property(srna, "undo_steps", PROP_INT, PROP_NONE);
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index da1f71f49da..19a7ae38b7f 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -551,7 +551,7 @@ static void wm_region_mouse_co(bContext *C, wmEvent *event)
}
}
-static int wm_operator_invoke(bContext *C, wmOperatorType *ot, wmEvent *event, PointerRNA *properties, ReportList *reports)
+int wm_operator_invoke(bContext *C, wmOperatorType *ot, wmEvent *event, PointerRNA *properties, ReportList *reports)
{
wmWindowManager *wm= CTX_wm_manager(C);
int retval= OPERATOR_PASS_THROUGH;
@@ -1930,7 +1930,8 @@ void WM_event_add_mousemove(bContext *C)
int WM_modal_tweak_exit(wmEvent *evt, int tweak_event)
{
/* user preset or keymap? dunno... */
- int tweak_modal= (U.flag & USER_DRAGIMMEDIATE)==0;
+ // XXX WTH is this?
+ int tweak_modal= (U.flag & USER_RELEASECONFIRM)==0;
switch(tweak_event) {
case EVT_TWEAK_L: