Fix T43008: Support stacked fullscreen areas
This commit is contained in:
@@ -161,11 +161,19 @@ ScrArea *render_view_open(bContext *C, int mx, int my)
|
|||||||
}
|
}
|
||||||
else if (scene->r.displaymode == R_OUTPUT_SCREEN) {
|
else if (scene->r.displaymode == R_OUTPUT_SCREEN) {
|
||||||
sa = CTX_wm_area(C);
|
sa = CTX_wm_area(C);
|
||||||
if (sa && sa->spacetype == SPACE_IMAGE)
|
|
||||||
area_was_image = true;
|
|
||||||
|
|
||||||
/* this function returns with changed context */
|
/* if the active screen is already in fullscreen mode, skip this and
|
||||||
sa = ED_screen_full_newspace(C, sa, SPACE_IMAGE);
|
* unset the area, so that the fullscreen area is just changed later */
|
||||||
|
if (sa->full) {
|
||||||
|
sa = NULL;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (sa && sa->spacetype == SPACE_IMAGE)
|
||||||
|
area_was_image = true;
|
||||||
|
|
||||||
|
/* this function returns with changed context */
|
||||||
|
sa = ED_screen_full_newspace(C, sa, SPACE_IMAGE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!sa) {
|
if (!sa) {
|
||||||
|
|||||||
@@ -1765,9 +1765,12 @@ void ED_screen_full_prevspace(bContext *C, ScrArea *sa)
|
|||||||
wmWindow *win = CTX_wm_window(C);
|
wmWindow *win = CTX_wm_window(C);
|
||||||
|
|
||||||
ED_area_prevspace(C, sa);
|
ED_area_prevspace(C, sa);
|
||||||
|
|
||||||
if (sa->full)
|
if (sa->full) {
|
||||||
ED_screen_state_toggle(C, win, sa, SCREENMAXIMIZED);
|
/* only toggle out of fullscreen if it wasn't set by the user (for stacked fullscreens) */
|
||||||
|
if (sa->flag & AREA_FLAG_TEMP_TYPE)
|
||||||
|
ED_screen_state_toggle(C, win, sa, SCREENMAXIMIZED);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ED_screen_retore_temp_type(bContext *C, ScrArea *sa, bool is_screen_change)
|
void ED_screen_retore_temp_type(bContext *C, ScrArea *sa, bool is_screen_change)
|
||||||
|
|||||||
Reference in New Issue
Block a user