svn merge -r39781:39792 https://svn.blender.org/svnroot/bf-blender/trunk/blender...
[blender-staging.git] / source / blender / blenkernel / intern / gpencil.c
index 43c4137e73eab73ccaead4f3f3c957304e324f05..c2e94cc97db7cfd407ef49190345900f569feb00 100644 (file)
@@ -1,6 +1,4 @@
-/**
- * $Id$
- *
+/*
  * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
@@ -15,7 +13,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  * The Original Code is Copyright (C) 2008, Blender Foundation
  * This is a new part of Blender
  *
  * ***** END GPL LICENSE BLOCK *****
  */
+
+/** \file blender/blenkernel/intern/gpencil.c
+ *  \ingroup bke
+ */
+
  
 #include <stdio.h>
 #include <string.h>
 
 #include "MEM_guardedalloc.h"
 
-#include "IMB_imbuf.h"
-#include "IMB_imbuf_types.h"
-
-#include "BLI_arithb.h"
 #include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
 
-#include "DNA_listBase.h"
 #include "DNA_gpencil_types.h"
-#include "DNA_object_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_vec_types.h"
 
-#include "BKE_blender.h"
-#include "BKE_context.h"
-#include "BKE_curve.h"
 #include "BKE_global.h"
 #include "BKE_gpencil.h"
-#include "BKE_image.h"
 #include "BKE_library.h"
 #include "BKE_main.h"
-#include "BKE_utildefines.h"
+
 
 
 /* ************************************************** */
@@ -194,7 +183,7 @@ bGPDlayer *gpencil_layer_addnew (bGPdata *gpd)
        
        /* auto-name */
        sprintf(gpl->info, "GP_Layer");
-       BLI_uniquename(&gpd->layers, gpl, "GP_Layer", '.', offsetof(bGPDlayer, info[0]), 128);
+       BLI_uniquename(&gpd->layers, gpl, "GP_Layer", '.', offsetof(bGPDlayer, info[0]), sizeof(gpl->info));
        
        /* make this one the active one */
        gpencil_layer_setactive(gpd, gpl);
@@ -204,7 +193,7 @@ bGPDlayer *gpencil_layer_addnew (bGPdata *gpd)
 }
 
 /* add a new gp-datablock */
-bGPdata *gpencil_data_addnew (char name[])
+bGPdata *gpencil_data_addnew (const char name[])
 {
        bGPdata *gpd;
        
@@ -349,8 +338,10 @@ bGPDframe *gpencil_layer_getframe (bGPDlayer *gpl, int cframe, short addnew)
        if (gpl->actframe) {
                gpf= gpl->actframe;
                
-               /* do not allow any changes to layer's active frame if layer is locked */
-               if (gpl->flag & GP_LAYER_LOCKED)
+               /* do not allow any changes to layer's active frame if layer is locked from changes
+                * or if the layer has been set to stay on the current frame
+                */
+               if (gpl->flag & (GP_LAYER_LOCKED|GP_LAYER_FRAMELOCK))
                        return gpf;
                /* do not allow any changes to actframe if frame has painting tag attached to it */
                if (gpf->flag & GP_FRAME_PAINT)