[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59444] trunk/blender/source/blender/ editors/gpencil/gpencil_edit.c: Related to [#36548] "Grease Pencil" Problems

Bastien Montagne montagne29 at wanadoo.fr
Fri Aug 23 23:26:59 CEST 2013


Revision: 59444
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59444
Author:   mont29
Date:     2013-08-23 21:26:59 +0000 (Fri, 23 Aug 2013)
Log Message:
-----------
Related to [#36548] "Grease Pencil" Problems

Use scene's GPencil when active object is deselected. Else it can be tricky and not user-friendly to access to the scene's GPencil once some objects have GPencil data (you have to select/active a non-gpencil object, or switch to a layout without active object...).

Modified Paths:
--------------
    trunk/blender/source/blender/editors/gpencil/gpencil_edit.c

Modified: trunk/blender/source/blender/editors/gpencil/gpencil_edit.c
===================================================================
--- trunk/blender/source/blender/editors/gpencil/gpencil_edit.c	2013-08-23 21:13:30 UTC (rev 59443)
+++ trunk/blender/source/blender/editors/gpencil/gpencil_edit.c	2013-08-23 21:26:59 UTC (rev 59444)
@@ -106,8 +106,8 @@
 				
 				/* TODO: we can include other data-types such as bones later if need be... */
 
-				/* just in case no active object */
-				if (ob) {
+				/* just in case no active/selected object */
+				if (ob && (ob->flag & SELECT)) {
 					/* for now, as long as there's an object, default to using that in 3D-View */
 					if (ptr) RNA_id_pointer_create(&ob->id, ptr);
 					return &ob->gpd;
@@ -193,14 +193,12 @@
 bGPdata *gpencil_data_get_active_v3d(Scene *scene)
 {
 	Base *base = scene->basact;
-	bGPdata *gpd = base ? base->object->gpd : NULL;
-	if (base && gpd) {
-		/* We have to make sure active object is actually visible, else we must use default scene gpd,
-		 * to be consistent with gpencil_data_get_active's behavior.
-		 */
-		if ((scene->lay & base->lay) == 0) {
-			gpd = NULL;
-		}
+	bGPdata *gpd = NULL;
+	/* We have to make sure active object is actually visible and selected, else we must use default scene gpd,
+	 * to be consistent with gpencil_data_get_active's behavior.
+	 */
+	if (base && (scene->lay & base->lay) && (base->object->flag & SELECT)) {
+		gpd = base->object->gpd;
 	}
 	return gpd ? gpd : scene->gpd;
 }




More information about the Bf-blender-cvs mailing list