diff options
Diffstat (limited to 'source/blender/editors/render/render_view.c')
-rw-r--r-- | source/blender/editors/render/render_view.c | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/source/blender/editors/render/render_view.c b/source/blender/editors/render/render_view.c index f6690296890..65f0fec50bc 100644 --- a/source/blender/editors/render/render_view.c +++ b/source/blender/editors/render/render_view.c @@ -38,6 +38,7 @@ #include "BKE_image.h" #include "BKE_global.h" #include "BKE_screen.h" +#include "BKE_report.h" #include "WM_api.h" #include "WM_types.h" @@ -125,7 +126,7 @@ static ScrArea *find_area_image_empty(bContext *C) /********************** open image editor for render *************************/ /* new window uses x,y to set position */ -ScrArea *render_view_open(bContext *C, int mx, int my) +ScrArea *render_view_open(bContext *C, int mx, int my, ReportList *reports) { wmWindow *win = CTX_wm_window(C); Scene *scene = CTX_data_scene(C); @@ -155,7 +156,10 @@ ScrArea *render_view_open(bContext *C, int mx, int my) rect.ymax = rect.ymin + sizey; /* changes context! */ - WM_window_open_temp(C, &rect, WM_WINDOW_RENDER); + if (WM_window_open_temp(C, &rect, WM_WINDOW_RENDER) == NULL) { + BKE_report(reports, RPT_ERROR, "Failed to open window!"); + return NULL; + } sa = CTX_wm_area(C); } @@ -189,7 +193,7 @@ ScrArea *render_view_open(bContext *C, int mx, int my) /* find largest open non-image area */ sa = biggest_non_image_area(C); if (sa) { - ED_area_newspace(C, sa, SPACE_IMAGE); + ED_area_newspace(C, sa, SPACE_IMAGE, true); sima = sa->spacedata.first; /* makes ESC go back to prev space */ @@ -261,7 +265,7 @@ static int render_view_cancel_exec(bContext *C, wmOperator *UNUSED(op)) if (sima->flag & SI_FULLWINDOW) { sima->flag &= ~SI_FULLWINDOW; - ED_screen_full_prevspace(C, sa, false); + ED_screen_full_prevspace(C, sa); } else { ED_area_prevspace(C, sa); @@ -292,7 +296,7 @@ void RENDER_OT_view_cancel(struct wmOperatorType *ot) /************************* show render viewer *****************/ -static int render_view_show_invoke(bContext *C, wmOperator *UNUSED(op), const wmEvent *event) +static int render_view_show_invoke(bContext *C, wmOperator *op, const wmEvent *event) { wmWindow *wincur = CTX_wm_window(C); @@ -326,22 +330,16 @@ static int render_view_show_invoke(bContext *C, wmOperator *UNUSED(op), const wm if (sima->flag & SI_FULLWINDOW) { sima->flag &= ~SI_FULLWINDOW; - ED_screen_full_prevspace(C, sa, false); + ED_screen_full_prevspace(C, sa); } - else if (sima->next) { - /* workaround for case of double prevspace, render window - * with a file browser on top of it (same as in ED_area_prevspace) */ - if (sima->next->spacetype == SPACE_FILE && sima->next->next) - ED_area_newspace(C, sa, sima->next->next->spacetype); - else - ED_area_newspace(C, sa, sima->next->spacetype); - ED_area_tag_redraw(sa); + else { + ED_area_prevspace(C, sa); } } } } else { - render_view_open(C, event->x, event->y); + render_view_open(C, event->x, event->y, op->reports); } } |