[Bf-blender-cvs] [a171fb4] GPencil_Editing_Stage3: GP EditMode: Some more fixes for editmode handling to resolve some annoying corner cases
Joshua Leung
noreply at git.blender.org
Thu Oct 22 13:27:43 CEST 2015
Commit: a171fb4e3c2140c8823de3aa64b09236ab0ad6ef
Author: Joshua Leung
Date: Fri Oct 23 00:21:12 2015 +1300
Branches: GPencil_Editing_Stage3
https://developer.blender.org/rBa171fb4e3c2140c8823de3aa64b09236ab0ad6ef
GP EditMode: Some more fixes for editmode handling to resolve some annoying corner cases
* Edit Strokes mode should only be available if there is actually a GP datablock
and it is in editmode
* If exiting strokes editmode with the active object hidden, the flag would not get
cleared, and it would appear that we were still in editmode.
===================================================================
M source/blender/editors/gpencil/gpencil_edit.c
M source/blender/editors/space_view3d/view3d_header.c
===================================================================
diff --git a/source/blender/editors/gpencil/gpencil_edit.c b/source/blender/editors/gpencil/gpencil_edit.c
index 4370e61..cf77956 100644
--- a/source/blender/editors/gpencil/gpencil_edit.c
+++ b/source/blender/editors/gpencil/gpencil_edit.c
@@ -86,9 +86,10 @@ static int gpencil_editmode_toggle_poll(bContext *C)
static int gpencil_editmode_toggle_exec(bContext *C, wmOperator *op)
{
- ScrArea *sa = CTX_wm_area(C);
- Object *ob = CTX_data_active_object(C);
bGPdata *gpd = ED_gpencil_data_get_active(C);
+ Scene *scene = CTX_data_scene(C);
+ Object *ob = OBACT;
+ ScrArea *sa = CTX_wm_area(C);
/* Toggle editmode flag... */
if (gpd == NULL)
diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c
index c687ee1..a565d55 100644
--- a/source/blender/editors/space_view3d/view3d_header.c
+++ b/source/blender/editors/space_view3d/view3d_header.c
@@ -305,13 +305,13 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C)
UI_block_emboss_set(block, UI_EMBOSS);
/* mode */
- if (ob) {
+ if ((gpd) && (gpd->flag & GP_DATA_STROKE_EDITMODE)) {
+ modeselect = OB_MODE_GPENCIL;
+ }
+ else if (ob) {
modeselect = ob->mode;
is_paint = ELEM(ob->mode, OB_MODE_SCULPT, OB_MODE_VERTEX_PAINT, OB_MODE_WEIGHT_PAINT, OB_MODE_TEXTURE_PAINT);
}
- else if ((gpd) && (gpd->flag & GP_DATA_STROKE_EDITMODE)) {
- modeselect = OB_MODE_GPENCIL;
- }
else {
modeselect = OB_MODE_OBJECT;
}
More information about the Bf-blender-cvs
mailing list