[Bf-blender-cvs] [5d327eda98d] blender2.8: Manipulator: option to draw all while interacting

Campbell Barton noreply at git.blender.org
Tue Jul 25 13:49:49 CEST 2017


Commit: 5d327eda98d6b309699ccb35f56f90f85b1d1822
Author: Campbell Barton
Date:   Tue Jul 25 22:02:16 2017 +1000
Branches: blender2.8
https://developer.blender.org/rB5d327eda98d6b309699ccb35f56f90f85b1d1822

Manipulator: option to draw all while interacting

===================================================================

M	source/blender/makesrna/intern/rna_wm_manipulator.c
M	source/blender/windowmanager/manipulators/WM_manipulator_types.h
M	source/blender/windowmanager/manipulators/intern/wm_manipulator_map.c

===================================================================

diff --git a/source/blender/makesrna/intern/rna_wm_manipulator.c b/source/blender/makesrna/intern/rna_wm_manipulator.c
index 5acabfb682f..000ec957629 100644
--- a/source/blender/makesrna/intern/rna_wm_manipulator.c
+++ b/source/blender/makesrna/intern/rna_wm_manipulator.c
@@ -1170,6 +1170,8 @@ static void rna_def_manipulatorgroup(BlenderRNA *brna)
 		 "Supports selection"},
 		{WM_MANIPULATORGROUPTYPE_PERSISTENT, "PERSISTENT", 0, "Persistent",
 		 ""},
+		{WM_MANIPULATORGROUPTYPE_ACTIVE_ALL, "ACTIVE_ALL", 0, "Active All",
+		 "Show all while interacting"},
 		{0, NULL, 0, NULL, NULL}
 	};
 	prop = RNA_def_property(srna, "bl_options", PROP_ENUM, PROP_NONE);
diff --git a/source/blender/windowmanager/manipulators/WM_manipulator_types.h b/source/blender/windowmanager/manipulators/WM_manipulator_types.h
index e2d8346524f..15bc9b3bd70 100644
--- a/source/blender/windowmanager/manipulators/WM_manipulator_types.h
+++ b/source/blender/windowmanager/manipulators/WM_manipulator_types.h
@@ -349,6 +349,8 @@ enum {
 	WM_MANIPULATORGROUPTYPE_SELECT  = (1 << 3),
 	/* The manipulator group is to be kept (not removed on loading a new file for eg). */
 	WM_MANIPULATORGROUPTYPE_PERSISTENT = (1 << 4),
+	/* Show all other manipulators when interacting. */
+	WM_MANIPULATORGROUPTYPE_ACTIVE_ALL = (1 << 5),
 };
 
 
diff --git a/source/blender/windowmanager/manipulators/intern/wm_manipulator_map.c b/source/blender/windowmanager/manipulators/intern/wm_manipulator_map.c
index 6ef5e6df946..e0bd6708a5e 100644
--- a/source/blender/windowmanager/manipulators/intern/wm_manipulator_map.c
+++ b/source/blender/windowmanager/manipulators/intern/wm_manipulator_map.c
@@ -240,11 +240,13 @@ static void manipulatormap_prepare_drawing(
 
 	/* only active manipulator needs updating */
 	if (active_manipulator) {
-		if (manipulator_prepare_drawing(mmap, active_manipulator, C, draw_manipulators)) {
-			manipulatormap_tag_updated(mmap);
+		if ((active_manipulator->parent_mgroup->type->flag & WM_MANIPULATORGROUPTYPE_ACTIVE_ALL) == 0) {
+			if (manipulator_prepare_drawing(mmap, active_manipulator, C, draw_manipulators)) {
+				manipulatormap_tag_updated(mmap);
+			}
+			/* don't draw any other manipulators */
+			return;
 		}
-		/* don't draw any other manipulators */
-		return;
 	}
 
 	for (wmManipulatorGroup *mgroup = mmap->groups.first; mgroup; mgroup = mgroup->next) {




More information about the Bf-blender-cvs mailing list