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;
 }

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to