[Bf-blender-cvs] [d3f5314716e] greasepencil-object: Change editable_gpencil_stroke context for multiedit

Antonio Vazquez noreply at git.blender.org
Tue Aug 29 16:10:34 CEST 2017


Commit: d3f5314716ee6f3a23663c44858eaa538e79a58c
Author: Antonio Vazquez
Date:   Tue Aug 29 12:17:12 2017 +0200
Branches: greasepencil-object
https://developer.blender.org/rBd3f5314716ee6f3a23663c44858eaa538e79a58c

Change editable_gpencil_stroke context for multiedit

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

M	source/blender/editors/screen/screen_context.c

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

diff --git a/source/blender/editors/screen/screen_context.c b/source/blender/editors/screen/screen_context.c
index a5c8e721fea..fa11ad5cb41 100644
--- a/source/blender/editors/screen/screen_context.c
+++ b/source/blender/editors/screen/screen_context.c
@@ -554,23 +554,28 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
 	else if (CTX_data_equals(member, "editable_gpencil_strokes")) {
 		/* XXX: see comment for gpencil_data case... */
 		bGPdata *gpd = ED_gpencil_data_get_active_direct((ID *)sc, scene, sa, obact);
-		
+		bool is_multiedit = (bool)GPENCIL_MULTIEDIT_SESSIONS_ON(gpd);
+
 		if (gpd) {
 			bGPDlayer *gpl;
 			
 			for (gpl = gpd->layers.first; gpl; gpl = gpl->next) {
 				if (gpencil_layer_is_editable(gpl) && (gpl->actframe)) {
-					bGPDframe *gpf = gpl->actframe;
+					bGPDframe *gpf;
 					bGPDstroke *gps;
-					
-					for (gps = gpf->strokes.first; gps; gps = gps->next) {
-						if (ED_gpencil_stroke_can_use_direct(sa, gps)) {
-							/* check if the color is editable */
-							if (ED_gpencil_stroke_color_use(gpl, gps) == false) {
-								continue;
-							}
 
-							CTX_data_list_add(result, &gpd->id, &RNA_GPencilStroke, gps);
+					for (gpf = gpl->frames.first; gpf; gpf = gpf->next) {
+						if ((gpf == gpl->actframe) || ((gpf->flag & GP_FRAME_SELECT) && (is_multiedit))) {
+							for (gps = gpf->strokes.first; gps; gps = gps->next) {
+								if (ED_gpencil_stroke_can_use_direct(sa, gps)) {
+									/* check if the color is editable */
+									if (ED_gpencil_stroke_color_use(gpl, gps) == false) {
+										continue;
+									}
+
+									CTX_data_list_add(result, &gpd->id, &RNA_GPencilStroke, gps);
+								}
+							}
 						}
 					}
 				}



More information about the Bf-blender-cvs mailing list