[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [51400] trunk/blender/source/blender/ editors/mask: Mask editor: create new mask when trying to create new vertex without active mask set

Sergey Sharybin sergey.vfx at gmail.com
Thu Oct 18 14:29:23 CEST 2012


Revision: 51400
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=51400
Author:   nazgul
Date:     2012-10-18 12:29:22 +0000 (Thu, 18 Oct 2012)
Log Message:
-----------
Mask editor: create new mask when trying to create new vertex without active mask set

Modified Paths:
--------------
    trunk/blender/source/blender/editors/mask/mask_add.c
    trunk/blender/source/blender/editors/mask/mask_intern.h
    trunk/blender/source/blender/editors/mask/mask_ops.c

Modified: trunk/blender/source/blender/editors/mask/mask_add.c
===================================================================
--- trunk/blender/source/blender/editors/mask/mask_add.c	2012-10-18 11:58:54 UTC (rev 51399)
+++ trunk/blender/source/blender/editors/mask/mask_add.c	2012-10-18 12:29:22 UTC (rev 51400)
@@ -46,6 +46,7 @@
 #include "WM_types.h"
 
 #include "ED_mask.h"  /* own include */
+#include "ED_screen.h"
 
 #include "RNA_access.h"
 #include "RNA_define.h"
@@ -562,6 +563,11 @@
 
 	float co[2];
 
+	if (mask == NULL) {
+		/* if there's no active mask, create one */
+		mask = ED_mask_new(C, NULL);
+	}
+
 	masklay = BKE_mask_layer_active(mask);
 
 	if (masklay && masklay->restrictflag & (MASK_RESTRICT_VIEW | MASK_RESTRICT_SELECT)) {
@@ -647,7 +653,7 @@
 	/* api callbacks */
 	ot->exec = add_vertex_exec;
 	ot->invoke = add_vertex_invoke;
-	ot->poll = ED_maskedit_mask_poll;
+	ot->poll = ED_operator_mask;
 
 	/* flags */
 	ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;

Modified: trunk/blender/source/blender/editors/mask/mask_intern.h
===================================================================
--- trunk/blender/source/blender/editors/mask/mask_intern.h	2012-10-18 11:58:54 UTC (rev 51399)
+++ trunk/blender/source/blender/editors/mask/mask_intern.h	2012-10-18 12:29:22 UTC (rev 51400)
@@ -33,6 +33,7 @@
 #define __MASK_INTERN_H__
 
 struct bContext;
+struct Mask;
 struct wmEvent;
 struct wmOperatorType;
 
@@ -43,6 +44,8 @@
 void MASK_OT_add_feather_vertex(struct wmOperatorType *ot);
 
 /* mask_ops.c */
+struct Mask *ED_mask_new(struct bContext *C, const char *name);
+
 void MASK_OT_new(struct wmOperatorType *ot);
 void MASK_OT_layer_new(struct wmOperatorType *ot);
 void MASK_OT_layer_remove(struct wmOperatorType *ot);

Modified: trunk/blender/source/blender/editors/mask/mask_ops.c
===================================================================
--- trunk/blender/source/blender/editors/mask/mask_ops.c	2012-10-18 11:58:54 UTC (rev 51399)
+++ trunk/blender/source/blender/editors/mask/mask_ops.c	2012-10-18 12:29:22 UTC (rev 51400)
@@ -258,14 +258,11 @@
 
 /******************** create new mask *********************/
 
-static int mask_new_exec(bContext *C, wmOperator *op)
+Mask *ED_mask_new(bContext *C, const char *name)
 {
 	ScrArea *sa = CTX_wm_area(C);
 	Mask *mask;
-	char name[MAX_ID_NAME - 2];
 
-	RNA_string_get(op->ptr, "name", name);
-
 	mask = BKE_mask_new(name);
 
 	if (sa && sa->spacedata.first) {
@@ -290,6 +287,17 @@
 		}
 	}
 
+	return mask;
+}
+
+static int mask_new_exec(bContext *C, wmOperator *op)
+{
+	char name[MAX_ID_NAME - 2];
+
+	RNA_string_get(op->ptr, "name", name);
+
+	ED_mask_new(C, name);
+
 	return OPERATOR_FINISHED;
 }
 




More information about the Bf-blender-cvs mailing list