Commit: 0487089c3146755dd7a19238cd9595744c5fee65
Author: Antonioya
Date:   Thu Nov 29 21:59:29 2018 +0100
Branches: blender2.8
https://developer.blender.org/rB0487089c3146755dd7a19238cd9595744c5fee65

Enable annotations when GP object is selected.

Now when try to add annotation, if a grease pencil object is selected, first 
the object is unselected. This solution is not perfect but it's better than 
cancel the annotation.

Thanks Dalai for his help.

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

M       source/blender/editors/gpencil/annotate_paint.c

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

diff --git a/source/blender/editors/gpencil/annotate_paint.c 
b/source/blender/editors/gpencil/annotate_paint.c
index 3a9b7e7306c..c5dcb51ff6e 100644
--- a/source/blender/editors/gpencil/annotate_paint.c
+++ b/source/blender/editors/gpencil/annotate_paint.c
@@ -49,6 +49,7 @@
 #include "BKE_context.h"
 #include "BKE_global.h"
 #include "BKE_gpencil.h"
+#include "BKE_layer.h"
 #include "BKE_main.h"
 #include "BKE_report.h"
 #include "BKE_screen.h"
@@ -1867,15 +1868,24 @@ static int gpencil_draw_invoke(bContext *C, wmOperator 
*op, const wmEvent *event
 {
        Object *ob = CTX_data_active_object(C);
        ScrArea *sa = CTX_wm_area(C);
+       Scene *scene = CTX_data_scene(C);
        tGPsdata *p = NULL;
 
-       /* GPXX Need a better solution */
+       /* if try to do annotations with a gp object selected, first
+        * unselect the object to avoid conflicts.
+        * The solution is not perfect but we can keep running the annotations 
while
+        * found a better solution.
+        */
        if (sa && sa->spacetype == SPACE_VIEW3D) {
                if ((ob != NULL) && (ob->type == OB_GPENCIL)) {
-                       BKE_report(op->reports, RPT_ERROR, "Cannot draw 
annotation with a Grease Pencil object active");
-                       return OPERATOR_CANCELLED;
+                       ViewLayer *view_layer = CTX_data_view_layer(C);
+                       BKE_view_layer_base_deselect_all(view_layer);
+                       view_layer->basact = NULL;
+                       DEG_id_tag_update(&scene->id, DEG_TAG_SELECT_UPDATE);
+                       WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, 
scene);
                }
        }
+
        if (G.debug & G_DEBUG)
                printf("GPencil - Starting Drawing\n");

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to