diff options
Diffstat (limited to 'source/blender/editors/space_image/space_image.c')
-rw-r--r-- | source/blender/editors/space_image/space_image.c | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c index f74b5dd3bbf..4a4418d97fc 100644 --- a/source/blender/editors/space_image/space_image.c +++ b/source/blender/editors/space_image/space_image.c @@ -55,6 +55,7 @@ #include "IMB_imbuf.h" #include "IMB_imbuf_types.h" +#include "ED_gpencil.h" #include "ED_image.h" #include "ED_mesh.h" #include "ED_space_api.h" @@ -293,10 +294,14 @@ static void image_listener(ScrArea *sa, wmNotifier *wmn) case NC_IMAGE: ED_area_tag_redraw(sa); break; - case NC_OBJECT: + case NC_SPACE: + if(wmn->data == ND_SPACE_IMAGE) + ED_area_tag_redraw(sa); + break; + case NC_GEOM: switch(wmn->data) { - case ND_GEOM_SELECT: - case ND_GEOM_DATA: + case ND_DATA: + case ND_SELECT: ED_area_tag_redraw(sa); break; } @@ -429,16 +434,22 @@ static void image_main_area_draw(const bContext *C, ARegion *ar) /* we set view2d from own zoom and offset each time */ image_main_area_set_view2d(sima, ar, scene); - + /* we draw image in pixelspace */ draw_image_main(sima, ar, scene); /* and uvs in 0.0-1.0 space */ UI_view2d_view_ortho(C, v2d); - draw_uvedit_main(sima, ar, scene, obedit); - ED_region_draw_cb_draw(C, ar, REGION_DRAW_POST); + draw_uvedit_main(sima, ar, scene, obedit); + ED_region_draw_cb_draw(C, ar, REGION_DRAW_POST); + + /* Grease Pencil too (in addition to UV's) */ + draw_image_grease_pencil((bContext *)C, 1); UI_view2d_view_restore(C); + /* draw Grease Pencil - screen space only */ + draw_image_grease_pencil((bContext *)C, 0); + /* scrollers? */ /*scrollers= UI_view2d_scrollers_calc(C, v2d, V2D_UNIT_VALUES, V2D_GRID_CLAMP, V2D_ARG_DUMMY, V2D_ARG_DUMMY); UI_view2d_scrollers_draw(C, v2d, scrollers); @@ -557,11 +568,10 @@ void ED_spacetype_image(void) /* regions: main window */ art= MEM_callocN(sizeof(ARegionType), "spacetype image region"); art->regionid = RGN_TYPE_WINDOW; - art->keymapflag= ED_KEYMAP_FRAMES; + art->keymapflag= ED_KEYMAP_FRAMES|ED_KEYMAP_GPENCIL; art->init= image_main_area_init; art->draw= image_main_area_draw; art->listener= image_main_area_listener; - art->keymapflag= 0; BLI_addhead(&st->regiontypes, art); @@ -618,7 +628,7 @@ void ED_space_image_set(bContext *C, SpaceImage *sima, Scene *scene, Object *obe if(C) { if(obedit) - WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_DATA, obedit); + WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data); ED_area_tag_redraw(CTX_wm_area(C)); } |