[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57715] trunk/blender/source/blender: Fix #35767: transforming nodes in the node editor changed the wireframe color

Brecht Van Lommel brechtvanlommel at pandora.be
Tue Jun 25 00:41:37 CEST 2013


Revision: 57715
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57715
Author:   blendix
Date:     2013-06-24 22:41:37 +0000 (Mon, 24 Jun 2013)
Log Message:
-----------
Fix #35767: transforming nodes in the node editor changed the wireframe color
of the active object in the 3D view. This was due to sharing a global G.moving
flag to indicate that transform is active, now it's only set per transform data
type so different editors don't influence each other.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_global.h
    trunk/blender/source/blender/blenkernel/intern/mball.c
    trunk/blender/source/blender/editors/mesh/editmesh_bevel.c
    trunk/blender/source/blender/editors/mesh/editmesh_inset.c
    trunk/blender/source/blender/editors/space_image/space_image.c
    trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c
    trunk/blender/source/blender/editors/space_view3d/drawobject.c
    trunk/blender/source/blender/editors/transform/transform.h
    trunk/blender/source/blender/editors/transform/transform_conversions.c
    trunk/blender/source/blender/editors/transform/transform_generics.c
    trunk/blender/source/blender/editors/transform/transform_manipulator.c
    trunk/blender/source/blender/editors/transform/transform_ops.c

Modified: trunk/blender/source/blender/blenkernel/BKE_global.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_global.h	2013-06-24 22:41:33 UTC (rev 57714)
+++ trunk/blender/source/blender/blenkernel/BKE_global.h	2013-06-24 22:41:37 UTC (rev 57715)
@@ -192,8 +192,7 @@
 /* G.moving, signals drawing in (3d) window to denote transform */
 #define G_TRANSFORM_OBJ         1
 #define G_TRANSFORM_EDIT        2
-#define G_TRANSFORM_MANIP       4
-#define G_TRANSFORM_PARTICLE    8
+#define G_TRANSFORM_SEQ         4
 
 /* G.special1 */
 

Modified: trunk/blender/source/blender/blenkernel/intern/mball.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mball.c	2013-06-24 22:41:33 UTC (rev 57714)
+++ trunk/blender/source/blender/blenkernel/intern/mball.c	2013-06-24 22:41:37 UTC (rev 57715)
@@ -2283,7 +2283,7 @@
 
 	if (process.totelem == 0) return;
 	if ((G.is_rendering == FALSE) && (mb->flag == MB_UPDATE_NEVER)) return;
-	if (G.moving && mb->flag == MB_UPDATE_FAST) return;
+	if ((G.moving & (G_TRANSFORM_OBJ|G_TRANSFORM_EDIT)) && mb->flag == MB_UPDATE_FAST) return;
 
 	process.thresh = mb->thresh;
 
@@ -2325,7 +2325,7 @@
 	}
 	else {
 		width = mb->wiresize;
-		if (G.moving && mb->flag == MB_UPDATE_HALFRES) width *= 2;
+		if ((G.moving & (G_TRANSFORM_OBJ|G_TRANSFORM_EDIT)) && mb->flag == MB_UPDATE_HALFRES) width *= 2;
 	}
 	/* nr_cubes is just for safety, minimum is totsize */
 	nr_cubes = (int)(0.5f + totsize / width);

Modified: trunk/blender/source/blender/editors/mesh/editmesh_bevel.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_bevel.c	2013-06-24 22:41:33 UTC (rev 57714)
+++ trunk/blender/source/blender/editors/mesh/editmesh_bevel.c	2013-06-24 22:41:37 UTC (rev 57715)
@@ -117,7 +117,7 @@
 
 		opdata->mesh_backup = EDBM_redo_state_store(em);
 		opdata->draw_handle_pixel = ED_region_draw_cb_activate(ar->type, ED_region_draw_mouse_line_cb, opdata->mcenter, REGION_DRAW_POST_PIXEL);
-		G.moving = true;
+		G.moving = G_TRANSFORM_EDIT;
 		opdata->twtype = v3d->twtype;
 		v3d->twtype = 0;
 	}
@@ -179,7 +179,7 @@
 		EDBM_redo_state_free(&opdata->mesh_backup, NULL, false);
 		ED_region_draw_cb_exit(ar->type, opdata->draw_handle_pixel);
 		v3d->twtype = opdata->twtype;
-		G.moving = false;
+		G.moving = 0;
 	}
 	MEM_freeN(opdata);
 	op->customdata = NULL;

Modified: trunk/blender/source/blender/editors/mesh/editmesh_inset.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_inset.c	2013-06-24 22:41:33 UTC (rev 57714)
+++ trunk/blender/source/blender/editors/mesh/editmesh_inset.c	2013-06-24 22:41:37 UTC (rev 57715)
@@ -136,7 +136,7 @@
 
 		opdata->mesh_backup = EDBM_redo_state_store(em);
 		opdata->draw_handle_pixel = ED_region_draw_cb_activate(ar->type, ED_region_draw_mouse_line_cb, opdata->mcenter, REGION_DRAW_POST_PIXEL);
-		G.moving = true;
+		G.moving = G_TRANSFORM_EDIT;
 		opdata->twtype = v3d->twtype;
 		v3d->twtype = 0;
 	}
@@ -157,7 +157,7 @@
 		EDBM_redo_state_free(&opdata->mesh_backup, NULL, false);
 		ED_region_draw_cb_exit(ar->type, opdata->draw_handle_pixel);
 		v3d->twtype = opdata->twtype;
-		G.moving = false;
+		G.moving = 0;
 	}
 
 	if (sa) {

Modified: trunk/blender/source/blender/editors/space_image/space_image.c
===================================================================
--- trunk/blender/source/blender/editors/space_image/space_image.c	2013-06-24 22:41:33 UTC (rev 57714)
+++ trunk/blender/source/blender/editors/space_image/space_image.c	2013-06-24 22:41:37 UTC (rev 57715)
@@ -376,15 +376,10 @@
 	
 	/* check if we have to set the image from the editmesh */
 	if (ima && (ima->source == IMA_SRC_VIEWER && sima->mode == SI_MODE_MASK)) {
-		if (sima->lock == FALSE && G.moving) {
-			/* pass */
-		}
-		else {
-			if (scene->nodetree) {
-				Mask *mask = ED_space_image_get_mask(sima);
-				if (mask) {
-					ED_node_composite_job(C, scene->nodetree, scene);
-				}
+		if (scene->nodetree) {
+			Mask *mask = ED_space_image_get_mask(sima);
+			if (mask) {
+				ED_node_composite_job(C, scene->nodetree, scene);
 			}
 		}
 	}

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c	2013-06-24 22:41:33 UTC (rev 57714)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c	2013-06-24 22:41:37 UTC (rev 57715)
@@ -403,7 +403,7 @@
 		glDisable(GL_BLEND);
 	}
 	
-	if (G.moving || (seq->flag & whichsel)) {
+	if ((G.moving & G_TRANSFORM_SEQ) || (seq->flag & whichsel)) {
 		const char col[4] = {255, 255, 255, 255};
 		if (direction == SEQ_LEFTHANDLE) {
 			BLI_snprintf(numstr, sizeof(numstr), "%d", seq->startdisp);
@@ -760,7 +760,7 @@
 	}
 
 	get_seq_color3ubv(scene, seq, col);
-	if (G.moving && (seq->flag & SELECT)) {
+	if ((G.moving & G_TRANSFORM_SEQ) && (seq->flag & SELECT)) {
 		if (seq->flag & SEQ_OVERLAP) {
 			col[0] = 255; col[1] = col[2] = 40;
 		}

Modified: trunk/blender/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/drawobject.c	2013-06-24 22:41:33 UTC (rev 57714)
+++ trunk/blender/source/blender/editors/space_view3d/drawobject.c	2013-06-24 22:41:37 UTC (rev 57715)
@@ -2685,7 +2685,7 @@
 	float grid = unit->system ? unit->scale_length : v3d->grid;
 	const bool do_split = (unit->flag & USER_UNIT_OPT_SPLIT) != 0;
 	const bool do_global = (v3d->flag & V3D_GLOBAL_STATS) != 0;
-	const bool do_moving = G.moving;
+	const bool do_moving = (G.moving & G_TRANSFORM_EDIT) != 0;
 	float clip_planes[4][4];
 
 	BMIter iter;

Modified: trunk/blender/source/blender/editors/transform/transform.h
===================================================================
--- trunk/blender/source/blender/editors/transform/transform.h	2013-06-24 22:41:33 UTC (rev 57714)
+++ trunk/blender/source/blender/editors/transform/transform.h	2013-06-24 22:41:37 UTC (rev 57715)
@@ -604,6 +604,7 @@
 void createTransData(struct bContext *C, TransInfo *t);
 void sort_trans_data_dist(TransInfo *t);
 void special_aftertrans_update(struct bContext *C, TransInfo *t);
+int  special_transform_moving(TransInfo *t);
 
 void transform_autoik_update(TransInfo *t, short mode);
 

Modified: trunk/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_conversions.c	2013-06-24 22:41:33 UTC (rev 57714)
+++ trunk/blender/source/blender/editors/transform/transform_conversions.c	2013-06-24 22:41:37 UTC (rev 57715)
@@ -5701,6 +5701,21 @@
 #endif
 }
 
+int special_transform_moving(TransInfo *t)
+{
+	if (t->spacetype == SPACE_SEQ) {
+		return G_TRANSFORM_SEQ;
+	}
+	else if (t->obedit || ((t->flag & T_POSE) && (t->poseobj))) {
+		return G_TRANSFORM_EDIT;
+	}
+	else if (t->flag & (T_OBJECT | T_TEXTURE)) {
+		return G_TRANSFORM_OBJ;
+	}
+
+	return 0;
+}
+
 static void createTransObject(bContext *C, TransInfo *t)
 {
 	TransData *td = NULL;

Modified: trunk/blender/source/blender/editors/transform/transform_generics.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_generics.c	2013-06-24 22:41:33 UTC (rev 57714)
+++ trunk/blender/source/blender/editors/transform/transform_generics.c	2013-06-24 22:41:37 UTC (rev 57715)
@@ -1047,12 +1047,6 @@
 	Object *obedit = CTX_data_edit_object(C);
 	PropertyRNA *prop;
 	
-	/* moving: is shown in drawobject() (transform color) */
-//  TRANSFORM_FIX_ME
-//	if (obedit || (t->flag & T_POSE) ) G.moving = G_TRANSFORM_EDIT;
-//	else if (G.f & G_PARTICLEEDIT) G.moving = G_TRANSFORM_PARTICLE;
-//	else G.moving = G_TRANSFORM_OBJ;
-	
 	t->scene = sce;
 	t->sa = sa;
 	t->ar = ar;

Modified: trunk/blender/source/blender/editors/transform/transform_manipulator.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_manipulator.c	2013-06-24 22:41:33 UTC (rev 57714)
+++ trunk/blender/source/blender/editors/transform/transform_manipulator.c	2013-06-24 22:41:37 UTC (rev 57715)
@@ -1592,7 +1592,6 @@
 /* ********************************************* */
 
 /* main call, does calc centers & orientation too */
-/* uses global G.moving */
 static int drawflags = 0xFFFF;       // only for the calls below, belongs in scene...?
 
 void BIF_draw_manipulator(const bContext *C)
@@ -1605,9 +1604,7 @@
 	int totsel;
 
 	if (!(v3d->twflag & V3D_USE_MANIPULATOR)) return;
-//	if (G.moving && (G.moving & G_TRANSFORM_MANIP)==0) return;
 
-//	if (G.moving==0) {
 	{
 		v3d->twflag &= ~V3D_DRAW_MANIPULATOR;
 
@@ -1654,11 +1651,13 @@
 		if (v3d->twtype & V3D_MANIP_ROTATE) {
 
 			if (G.debug_value == 3) {
-				if (G.moving) draw_manipulator_rotate_cyl(v3d, rv3d, 1, drawflags, v3d->twtype, MAN_MOVECOL);
-				else draw_manipulator_rotate_cyl(v3d, rv3d, 0, drawflags, v3d->twtype, MAN_RGB);
+				if (G.moving & (G_TRANSFORM_OBJ|G_TRANSFORM_EDIT))
+					draw_manipulator_rotate_cyl(v3d, rv3d, 1, drawflags, v3d->twtype, MAN_MOVECOL);
+				else
+					draw_manipulator_rotate_cyl(v3d, rv3d, 0, drawflags, v3d->twtype, MAN_RGB);
 			}
 			else
-				draw_manipulator_rotate(v3d, rv3d, 0 /* G.moving*/, drawflags, v3d->twtype);
+				draw_manipulator_rotate(v3d, rv3d, 0, drawflags, v3d->twtype);
 		}
 		if (v3d->twtype & V3D_MANIP_SCALE) {
 			draw_manipulator_scale(v3d, rv3d, 0, drawflags, v3d->twtype, MAN_RGB);

Modified: trunk/blender/source/blender/editors/transform/transform_ops.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_ops.c	2013-06-24 22:41:33 UTC (rev 57714)
+++ trunk/blender/source/blender/editors/transform/transform_ops.c	2013-06-24 22:41:37 UTC (rev 57715)
@@ -357,10 +357,10 @@
 		}
 
 		retval = initTransform(C, t, op, event, mode);
-		G.moving = 1;
 
 		/* store data */
 		if (retval) {
+			G.moving = special_transform_moving(t);
 			op->customdata = t;
 		}
 		else {




More information about the Bf-blender-cvs mailing list