static int render_view_cancel_exec(bContext *C, wmOperator *UNUSED(op)) { wmWindow *win = CTX_wm_window(C); ScrArea *sa = CTX_wm_area(C); SpaceImage *sima = sa->spacedata.first; /* test if we have a temp screen in front */ if (CTX_wm_window(C)->screen->temp) { wm_window_lower(CTX_wm_window(C)); return OPERATOR_FINISHED; } /* determine if render already shows */ else if (sima->flag & SI_PREVSPACE) { sima->flag &= ~SI_PREVSPACE; if (sima->flag & SI_FULLWINDOW) { sima->flag &= ~SI_FULLWINDOW; ED_screen_full_prevspace(C, sa); } else ED_area_prevspace(C, sa); return OPERATOR_FINISHED; } else if (sima->flag & SI_FULLWINDOW) { sima->flag &= ~SI_FULLWINDOW; ED_screen_full_toggle(C, win, sa); return OPERATOR_FINISHED; } return OPERATOR_PASS_THROUGH; }
static int render_view_show_invoke(bContext *C, wmOperator *UNUSED(op), const wmEvent *event) { wmWindow *wincur = CTX_wm_window(C); /* test if we have currently a temp screen active */ if (wincur->screen->temp) { wm_window_lower(wincur); } else { wmWindow *win, *winshow; ScrArea *sa = find_area_showing_r_result(C, CTX_data_scene(C), &winshow); /* is there another window on current scene showing result? */ for (win = CTX_wm_manager(C)->windows.first; win; win = win->next) { bScreen *sc = win->screen; if ((sc->temp && ((ScrArea *)sc->areabase.first)->spacetype == SPACE_IMAGE) || (win == winshow && winshow != wincur)) { wm_window_raise(win); return OPERATOR_FINISHED; } } /* determine if render already shows */ if (sa) { /* but don't close it when rendering */ if (G.is_rendering == false) { SpaceImage *sima = sa->spacedata.first; if (sima->flag & SI_PREVSPACE) { sima->flag &= ~SI_PREVSPACE; if (sima->flag & SI_FULLWINDOW) { sima->flag &= ~SI_FULLWINDOW; ED_screen_full_prevspace(C, sa, false); } 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 { render_view_open(C, event->x, event->y); } } return OPERATOR_FINISHED; }
static int render_view_cancel_exec(bContext *C, wmOperator *UNUSED(op)) { wmWindow *win = CTX_wm_window(C); ScrArea *sa = CTX_wm_area(C); SpaceImage *sima = sa->spacedata.first; /* ensure image editor fullscreen and area fullscreen states are in sync */ if ((sima->flag & SI_FULLWINDOW) && !sa->full) { sima->flag &= ~SI_FULLWINDOW; } /* test if we have a temp screen in front */ if (win->screen->temp) { wm_window_lower(win); return OPERATOR_FINISHED; } /* determine if render already shows */ else if (sima->flag & SI_PREVSPACE) { sima->flag &= ~SI_PREVSPACE; if (sima->flag & SI_FULLWINDOW) { sima->flag &= ~SI_FULLWINDOW; ED_screen_full_prevspace(C, sa, false); } else { ED_area_prevspace(C, sa); } return OPERATOR_FINISHED; } else if (sima->flag & SI_FULLWINDOW) { sima->flag &= ~SI_FULLWINDOW; ED_screen_state_toggle(C, win, sa, SCREENMAXIMIZED); return OPERATOR_FINISHED; } return OPERATOR_PASS_THROUGH; }