diff options
Diffstat (limited to 'source/blender/editors/screen/screen_edit.c')
-rw-r--r-- | source/blender/editors/screen/screen_edit.c | 375 |
1 files changed, 190 insertions, 185 deletions
diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index 01a30f7d6a4..11a12452ce3 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -70,17 +70,17 @@ static ScrArea *screen_addarea_ex(ScrAreaMap *area_map, ScrVert *bottom_right, short spacetype) { - ScrArea *sa = MEM_callocN(sizeof(ScrArea), "addscrarea"); + ScrArea *area = MEM_callocN(sizeof(ScrArea), "addscrarea"); - sa->v1 = bottom_left; - sa->v2 = top_left; - sa->v3 = top_right; - sa->v4 = bottom_right; - sa->spacetype = spacetype; + area->v1 = bottom_left; + area->v2 = top_left; + area->v3 = top_right; + area->v4 = bottom_right; + area->spacetype = spacetype; - BLI_addtail(&area_map->areabase, sa); + BLI_addtail(&area_map->areabase, area); - return sa; + return area; } static ScrArea *screen_addarea(bScreen *sc, ScrVert *left_bottom, @@ -93,31 +93,32 @@ static ScrArea *screen_addarea(bScreen *sc, AREAMAP_FROM_SCREEN(sc), left_bottom, left_top, right_top, right_bottom, spacetype); } -static void screen_delarea(bContext *C, bScreen *sc, ScrArea *sa) +static void screen_delarea(bContext *C, bScreen *sc, ScrArea *area) { - ED_area_exit(C, sa); + ED_area_exit(C, area); - BKE_screen_area_free(sa); + BKE_screen_area_free(area); - BLI_remlink(&sc->areabase, sa); - MEM_freeN(sa); + BLI_remlink(&sc->areabase, area); + MEM_freeN(area); } -ScrArea *area_split(const wmWindow *win, bScreen *sc, ScrArea *sa, char dir, float fac, int merge) +ScrArea *area_split( + const wmWindow *win, bScreen *sc, ScrArea *area, char dir, float fac, int merge) { ScrArea *newa = NULL; ScrVert *sv1, *sv2; short split; rcti window_rect; - if (sa == NULL) { + if (area == NULL) { return NULL; } WM_window_rect_calc(win, &window_rect); - split = screen_geom_find_area_split_point(sa, &window_rect, dir, fac); + split = screen_geom_find_area_split_point(area, &window_rect, dir, fac); if (split == 0) { return NULL; } @@ -128,65 +129,65 @@ ScrArea *area_split(const wmWindow *win, bScreen *sc, ScrArea *sa, char dir, flo if (dir == 'h') { /* new vertices */ - sv1 = screen_geom_vertex_add(sc, sa->v1->vec.x, split); - sv2 = screen_geom_vertex_add(sc, sa->v4->vec.x, split); + sv1 = screen_geom_vertex_add(sc, area->v1->vec.x, split); + sv2 = screen_geom_vertex_add(sc, area->v4->vec.x, split); /* new edges */ - screen_geom_edge_add(sc, sa->v1, sv1); - screen_geom_edge_add(sc, sv1, sa->v2); - screen_geom_edge_add(sc, sa->v3, sv2); - screen_geom_edge_add(sc, sv2, sa->v4); + screen_geom_edge_add(sc, area->v1, sv1); + screen_geom_edge_add(sc, sv1, area->v2); + screen_geom_edge_add(sc, area->v3, sv2); + screen_geom_edge_add(sc, sv2, area->v4); screen_geom_edge_add(sc, sv1, sv2); if (fac > 0.5f) { /* new areas: top */ - newa = screen_addarea(sc, sv1, sa->v2, sa->v3, sv2, sa->spacetype); + newa = screen_addarea(sc, sv1, area->v2, area->v3, sv2, area->spacetype); /* area below */ - sa->v2 = sv1; - sa->v3 = sv2; + area->v2 = sv1; + area->v3 = sv2; } else { /* new areas: bottom */ - newa = screen_addarea(sc, sa->v1, sv1, sv2, sa->v4, sa->spacetype); + newa = screen_addarea(sc, area->v1, sv1, sv2, area->v4, area->spacetype); /* area above */ - sa->v1 = sv1; - sa->v4 = sv2; + area->v1 = sv1; + area->v4 = sv2; } - ED_area_data_copy(newa, sa, true); + ED_area_data_copy(newa, area, true); } else { /* new vertices */ - sv1 = screen_geom_vertex_add(sc, split, sa->v1->vec.y); - sv2 = screen_geom_vertex_add(sc, split, sa->v2->vec.y); + sv1 = screen_geom_vertex_add(sc, split, area->v1->vec.y); + sv2 = screen_geom_vertex_add(sc, split, area->v2->vec.y); /* new edges */ - screen_geom_edge_add(sc, sa->v1, sv1); - screen_geom_edge_add(sc, sv1, sa->v4); - screen_geom_edge_add(sc, sa->v2, sv2); - screen_geom_edge_add(sc, sv2, sa->v3); + screen_geom_edge_add(sc, area->v1, sv1); + screen_geom_edge_add(sc, sv1, area->v4); + screen_geom_edge_add(sc, area->v2, sv2); + screen_geom_edge_add(sc, sv2, area->v3); screen_geom_edge_add(sc, sv1, sv2); if (fac > 0.5f) { /* new areas: right */ - newa = screen_addarea(sc, sv1, sv2, sa->v3, sa->v4, sa->spacetype); + newa = screen_addarea(sc, sv1, sv2, area->v3, area->v4, area->spacetype); /* area left */ - sa->v3 = sv2; - sa->v4 = sv1; + area->v3 = sv2; + area->v4 = sv1; } else { /* new areas: left */ - newa = screen_addarea(sc, sa->v1, sa->v2, sv2, sv1, sa->spacetype); + newa = screen_addarea(sc, area->v1, area->v2, sv2, sv1, area->spacetype); /* area right */ - sa->v1 = sv1; - sa->v2 = sv2; + area->v1 = sv1; + area->v2 = sv2; } - ED_area_data_copy(newa, sa, true); + ED_area_data_copy(newa, area, true); } /* remove double vertices en edges */ @@ -231,7 +232,7 @@ void screen_data_copy(bScreen *to, bScreen *from) { ScrVert *s1, *s2; ScrEdge *se; - ScrArea *sa, *saf; + ScrArea *area, *saf; /* free contents of 'to', is from blenkernel screen.c */ BKE_screen_free(to); @@ -255,18 +256,18 @@ void screen_data_copy(bScreen *to, bScreen *from) } saf = from->areabase.first; - for (sa = to->areabase.first; sa; sa = sa->next, saf = saf->next) { - sa->v1 = sa->v1->newv; - sa->v2 = sa->v2->newv; - sa->v3 = sa->v3->newv; - sa->v4 = sa->v4->newv; + for (area = to->areabase.first; area; area = area->next, saf = saf->next) { + area->v1 = area->v1->newv; + area->v2 = area->v2->newv; + area->v3 = area->v3->newv; + area->v4 = area->v4->newv; - BLI_listbase_clear(&sa->spacedata); - BLI_listbase_clear(&sa->regionbase); - BLI_listbase_clear(&sa->actionzones); - BLI_listbase_clear(&sa->handlers); + BLI_listbase_clear(&area->spacedata); + BLI_listbase_clear(&area->regionbase); + BLI_listbase_clear(&area->actionzones); + BLI_listbase_clear(&area->handlers); - ED_area_data_copy(sa, saf, true); + ED_area_data_copy(area, saf, true); } /* put at zero (needed?) */ @@ -285,19 +286,19 @@ void screen_new_activate_prepare(const wmWindow *win, bScreen *screen_new) screen_new->do_draw = true; } -/* with sa as center, sb is located at: 0=W, 1=N, 2=E, 3=S */ +/* with area as center, sb is located at: 0=W, 1=N, 2=E, 3=S */ /* -1 = not valid check */ /* used with join operator */ -int area_getorientation(ScrArea *sa, ScrArea *sb) +int area_getorientation(ScrArea *area, ScrArea *sb) { - if (sa == NULL || sb == NULL) { + if (area == NULL || sb == NULL) { return -1; } - ScrVert *saBL = sa->v1; - ScrVert *saTL = sa->v2; - ScrVert *saTR = sa->v3; - ScrVert *saBR = sa->v4; + ScrVert *saBL = area->v1; + ScrVert *saTL = area->v2; + ScrVert *saTR = area->v3; + ScrVert *saBR = area->v4; ScrVert *sbBL = sb->v1; ScrVert *sbTL = sb->v2; @@ -306,25 +307,26 @@ int area_getorientation(ScrArea *sa, ScrArea *sb) int tolerance = U.pixelsize * 4; - if (saBL->vec.x == sbBR->vec.x && saTL->vec.x == sbTR->vec.x) { /* sa to right of sb = W */ + if (saBL->vec.x == sbBR->vec.x && saTL->vec.x == sbTR->vec.x) { /* area to right of sb = W */ if ((abs(saBL->vec.y - sbBR->vec.y) <= tolerance) && (abs(saTL->vec.y - sbTR->vec.y) <= tolerance)) { return 0; } } - else if (saTL->vec.y == sbBL->vec.y && saTR->vec.y == sbBR->vec.y) { /* sa to bottom of sb = N */ + else if (saTL->vec.y == sbBL->vec.y && + saTR->vec.y == sbBR->vec.y) { /* area to bottom of sb = N */ if ((abs(saTL->vec.x - sbBL->vec.x) <= tolerance) && (abs(saTR->vec.x - sbBR->vec.x) <= tolerance)) { return 1; } } - else if (saTR->vec.x == sbTL->vec.x && saBR->vec.x == sbBL->vec.x) { /* sa to left of sb = E */ + else if (saTR->vec.x == sbTL->vec.x && saBR->vec.x == sbBL->vec.x) { /* area to left of sb = E */ if ((abs(saTR->vec.y - sbTL->vec.y) <= tolerance) && (abs(saBR->vec.y - sbBL->vec.y) <= tolerance)) { return 2; } } - else if (saBL->vec.y == sbTL->vec.y && saBR->vec.y == sbTR->vec.y) { /* sa on top of sb = S*/ + else if (saBL->vec.y == sbTL->vec.y && saBR->vec.y == sbTR->vec.y) { /* area on top of sb = S*/ if ((abs(saBL->vec.x - sbTL->vec.x) <= tolerance) && (abs(saBR->vec.x - sbTR->vec.x) <= tolerance)) { return 3; @@ -398,12 +400,12 @@ int screen_area_join(bContext *C, bScreen *scr, ScrArea *sa1, ScrArea *sa2) /* ****************** EXPORTED API TO OTHER MODULES *************************** */ /* screen sets cursor based on active region */ -static void region_cursor_set_ex(wmWindow *win, ScrArea *sa, ARegion *region, bool swin_changed) +static void region_cursor_set_ex(wmWindow *win, ScrArea *area, ARegion *region, bool swin_changed) { BLI_assert(WM_window_get_active_screen(win)->active_region == region); if (win->tag_cursor_refresh || swin_changed || (region->type && region->type->event_cursor)) { win->tag_cursor_refresh = false; - ED_region_cursor_set(win, sa, region); + ED_region_cursor_set(win, area, region); } } @@ -411,11 +413,11 @@ static void region_cursor_set(wmWindow *win, bool swin_changed) { bScreen *screen = WM_window_get_active_screen(win); - ED_screen_areas_iter(win, screen, sa) + ED_screen_areas_iter(win, screen, area) { - for (ARegion *region = sa->regionbase.first; region; region = region->next) { + for (ARegion *region = area->regionbase.first; region; region = region->next) { if (region == screen->active_region) { - region_cursor_set_ex(win, sa, region, swin_changed); + region_cursor_set_ex(win, area, region, swin_changed); return; } } @@ -522,11 +524,11 @@ void ED_screen_ensure_updated(wmWindowManager *wm, wmWindow *win, bScreen *scree * Utility to exit and free an area-region. Screen level regions (menus/popups) need to be treated * slightly differently, see #ui_region_temp_remove(). */ -void ED_region_remove(bContext *C, ScrArea *sa, ARegion *region) +void ED_region_remove(bContext *C, ScrArea *area, ARegion *region) { ED_region_exit(C, region); - BKE_area_region_free(sa->type, region); - BLI_freelinkN(&sa->regionbase, region); + BKE_area_region_free(area->type, region); + BLI_freelinkN(&area->regionbase, region); } /* *********** exit calls are for closing running stuff ******** */ @@ -562,25 +564,25 @@ void ED_region_exit(bContext *C, ARegion *region) CTX_wm_region_set(C, prevar); } -void ED_area_exit(bContext *C, ScrArea *sa) +void ED_area_exit(bContext *C, ScrArea *area) { wmWindowManager *wm = CTX_wm_manager(C); wmWindow *win = CTX_wm_window(C); ScrArea *prevsa = CTX_wm_area(C); ARegion *region; - if (sa->type && sa->type->exit) { - sa->type->exit(wm, sa); + if (area->type && area->type->exit) { + area->type->exit(wm, area); } - CTX_wm_area_set(C, sa); + CTX_wm_area_set(C, area); - for (region = sa->regionbase.first; region; region = region->next) { + for (region = area->regionbase.first; region; region = region->next) { ED_region_exit(C, region); } - WM_event_remove_handlers(C, &sa->handlers); - WM_event_modal_handler_area_replace(win, sa, NULL); + WM_event_remove_handlers(C, &area->handlers); + WM_event_modal_handler_area_replace(win, area, NULL); CTX_wm_area_set(C, prevsa); } @@ -608,12 +610,12 @@ void ED_screen_exit(bContext *C, wmWindow *window, bScreen *screen) for (ARegion *region = screen->regionbase.first; region; region = region->next) { ED_region_exit(C, region); } - for (ScrArea *sa = screen->areabase.first; sa; sa = sa->next) { - ED_area_exit(C, sa); + for (ScrArea *area = screen->areabase.first; area; area = area->next) { + ED_area_exit(C, area); } /* Don't use ED_screen_areas_iter here, it skips hidden areas. */ - for (ScrArea *sa = window->global_areas.areabase.first; sa; sa = sa->next) { - ED_area_exit(C, sa); + for (ScrArea *area = window->global_areas.areabase.first; area; area = area->next) { + ED_area_exit(C, area); } /* mark it available for use for other windows */ @@ -636,15 +638,15 @@ static void screen_cursor_set(wmWindow *win, const int xy[2]) { const bScreen *screen = WM_window_get_active_screen(win); AZone *az = NULL; - ScrArea *sa; + ScrArea *area; - for (sa = screen->areabase.first; sa; sa = sa->next) { - if ((az = ED_area_actionzone_find_xy(sa, xy))) { + for (area = screen->areabase.first; area; area = area->next) { + if ((az = ED_area_actionzone_find_xy(area, xy))) { break; } } - if (sa) { + if (area) { if (az->type == AZONE_AREA) { WM_cursor_set(win, WM_CURSOR_EDIT); } @@ -685,7 +687,7 @@ void ED_screen_set_active_region(bContext *C, wmWindow *win, const int xy[2]) return; } - ScrArea *sa = NULL; + ScrArea *area = NULL; ARegion *region; ARegion *region_prev = scr->active_region; @@ -694,15 +696,15 @@ void ED_screen_set_active_region(bContext *C, wmWindow *win, const int xy[2]) if (xy[0] > area_iter->totrct.xmin && xy[0] < area_iter->totrct.xmax) { if (xy[1] > area_iter->totrct.ymin && xy[1] < area_iter->totrct.ymax) { if (ED_area_azones_update(area_iter, xy) == NULL) { - sa = area_iter; + area = area_iter; break; } } } } - if (sa) { + if (area) { /* Make overlap active when mouse over. */ - for (region = sa->regionbase.first; region; region = region->next) { + for (region = area->regionbase.first; region; region = region->next) { if (ED_region_contains_xy(region, xy)) { scr->active_region = region; break; @@ -758,7 +760,7 @@ void ED_screen_set_active_region(bContext *C, wmWindow *win, const int xy[2]) } else { /* Notifier invokes freeing the buttons... causing a bit too much redraws. */ - region_cursor_set_ex(win, sa, scr->active_region, region_prev != scr->active_region); + region_cursor_set_ex(win, area, scr->active_region, region_prev != scr->active_region); if (region_prev != scr->active_region) { /* This used to be a notifier, but needs to be done immediate @@ -775,17 +777,17 @@ int ED_screen_area_active(const bContext *C) { wmWindow *win = CTX_wm_window(C); bScreen *sc = CTX_wm_screen(C); - ScrArea *sa = CTX_wm_area(C); + ScrArea *area = CTX_wm_area(C); - if (win && sc && sa) { - AZone *az = ED_area_actionzone_find_xy(sa, &win->eventstate->x); + if (win && sc && area) { + AZone *az = ED_area_actionzone_find_xy(area, &win->eventstate->x); ARegion *region; if (az && az->type == AZONE_REGION) { return 1; } - for (region = sa->regionbase.first; region; region = region->next) { + for (region = area->regionbase.first; region; region = region->next) { if (region == sc->active_region) { return 1; } @@ -815,16 +817,16 @@ static ScrArea *screen_area_create_with_geometry(ScrAreaMap *area_map, return screen_addarea_ex(area_map, bottom_left, top_left, top_right, bottom_right, spacetype); } -static void screen_area_set_geometry_rect(ScrArea *sa, const rcti *rect) +static void screen_area_set_geometry_rect(ScrArea *area, const rcti *rect) { - sa->v1->vec.x = rect->xmin; - sa->v1->vec.y = rect->ymin; - sa->v2->vec.x = rect->xmin; - sa->v2->vec.y = rect->ymax; - sa->v3->vec.x = rect->xmax; - sa->v3->vec.y = rect->ymax; - sa->v4->vec.x = rect->xmax; - sa->v4->vec.y = rect->ymin; + area->v1->vec.x = rect->xmin; + area->v1->vec.y = rect->ymin; + area->v2->vec.x = rect->xmin; + area->v2->vec.y = rect->ymax; + area->v3->vec.x = rect->xmax; + area->v3->vec.y = rect->ymax; + area->v4->vec.x = rect->xmax; + area->v4->vec.y = rect->ymin; } static void screen_global_area_refresh(wmWindow *win, @@ -943,8 +945,8 @@ static bScreen *screen_fullscreen_find_associated_normal_screen(const Main *bmai for (bScreen *screen_iter = bmain->screens.first; screen_iter; screen_iter = screen_iter->id.next) { if ((screen_iter != screen) && ELEM(screen_iter->state, SCREENMAXIMIZED, SCREENFULL)) { - ScrArea *sa = screen_iter->areabase.first; - if (sa && sa->full == screen) { + ScrArea *area = screen_iter->areabase.first; + if (area && area->full == screen) { return screen_iter; } } @@ -976,8 +978,8 @@ bScreen *screen_change_prepare( wmTimer *wt = screen_old->animtimer; /* remove handlers referencing areas in old screen */ - for (ScrArea *sa = screen_old->areabase.first; sa; sa = sa->next) { - WM_event_remove_area_handler(&win->modalhandlers, sa); + for (ScrArea *area = screen_old->areabase.first; area; area = area->next) { + WM_event_remove_area_handler(&win->modalhandlers, area); } /* we put timer to sleep, so screen_exit has to think there's no timer */ @@ -1042,7 +1044,10 @@ bool ED_screen_change(bContext *C, bScreen *sc) return false; } -static void screen_set_3dview_camera(Scene *scene, ViewLayer *view_layer, ScrArea *sa, View3D *v3d) +static void screen_set_3dview_camera(Scene *scene, + ViewLayer *view_layer, + ScrArea *area, + View3D *v3d) { /* fix any cameras that are used in the 3d view but not in the scene */ BKE_screen_view3d_sync(v3d, scene); @@ -1055,8 +1060,8 @@ static void screen_set_3dview_camera(Scene *scene, ViewLayer *view_layer, ScrAre ListBase *regionbase; /* regionbase is in different place depending if space is active */ - if (v3d == sa->spacedata.first) { - regionbase = &sa->regionbase; + if (v3d == area->spacedata.first) { + regionbase = &area->regionbase; } else { regionbase = &v3d->regionbase; @@ -1104,28 +1109,28 @@ void ED_screen_scene_change(bContext *C, wmWindow *win, Scene *scene) /* Update 3D view cameras. */ const bScreen *screen = WM_window_get_active_screen(win); - for (ScrArea *sa = screen->areabase.first; sa; sa = sa->next) { - for (SpaceLink *sl = sa->spacedata.first; sl; sl = sl->next) { + for (ScrArea *area = screen->areabase.first; area; area = area->next) { + for (SpaceLink *sl = area->spacedata.first; sl; sl = sl->next) { if (sl->spacetype == SPACE_VIEW3D) { View3D *v3d = (View3D *)sl; - screen_set_3dview_camera(scene, view_layer, sa, v3d); + screen_set_3dview_camera(scene, view_layer, area, v3d); } } } } -ScrArea *ED_screen_full_newspace(bContext *C, ScrArea *sa, int type) +ScrArea *ED_screen_full_newspace(bContext *C, ScrArea *area, int type) { wmWindow *win = CTX_wm_window(C); ScrArea *newsa = NULL; SpaceLink *newsl; - if (!sa || sa->full == NULL) { - newsa = ED_screen_state_toggle(C, win, sa, SCREENMAXIMIZED); + if (!area || area->full == NULL) { + newsa = ED_screen_state_toggle(C, win, area, SCREENMAXIMIZED); } if (!newsa) { - newsa = sa; + newsa = area; } BLI_assert(newsa); @@ -1144,40 +1149,40 @@ ScrArea *ED_screen_full_newspace(bContext *C, ScrArea *sa, int type) /** * \a was_prev_temp for the case previous space was a temporary fullscreen as well */ -void ED_screen_full_prevspace(bContext *C, ScrArea *sa) +void ED_screen_full_prevspace(bContext *C, ScrArea *area) { - BLI_assert(sa->full); + BLI_assert(area->full); - if (sa->flag & AREA_FLAG_STACKED_FULLSCREEN) { + if (area->flag & AREA_FLAG_STACKED_FULLSCREEN) { /* stacked fullscreen -> only go back to previous area and don't toggle out of fullscreen */ - ED_area_prevspace(C, sa); + ED_area_prevspace(C, area); } else { - ED_screen_restore_temp_type(C, sa); + ED_screen_restore_temp_type(C, area); } } -void ED_screen_restore_temp_type(bContext *C, ScrArea *sa) +void ED_screen_restore_temp_type(bContext *C, ScrArea *area) { - SpaceLink *sl = sa->spacedata.first; + SpaceLink *sl = area->spacedata.first; /* In case nether functions below run. */ - ED_area_tag_redraw(sa); + ED_area_tag_redraw(area); if (sl->link_flag & SPACE_FLAG_TYPE_TEMPORARY) { - ED_area_prevspace(C, sa); + ED_area_prevspace(C, area); } - if (sa->full) { - ED_screen_state_toggle(C, CTX_wm_window(C), sa, SCREENMAXIMIZED); + if (area->full) { + ED_screen_state_toggle(C, CTX_wm_window(C), area, SCREENMAXIMIZED); } } /* restore a screen / area back to default operation, after temp fullscreen modes */ -void ED_screen_full_restore(bContext *C, ScrArea *sa) +void ED_screen_full_restore(bContext *C, ScrArea *area) { wmWindow *win = CTX_wm_window(C); - SpaceLink *sl = sa->spacedata.first; + SpaceLink *sl = area->spacedata.first; bScreen *screen = CTX_wm_screen(C); short state = (screen ? screen->state : SCREENMAXIMIZED); @@ -1186,25 +1191,25 @@ void ED_screen_full_restore(bContext *C, ScrArea *sa) if (sl->next) { if (sl->link_flag & SPACE_FLAG_TYPE_TEMPORARY) { - ED_screen_full_prevspace(C, sa); + ED_screen_full_prevspace(C, area); } else { - ED_screen_state_toggle(C, win, sa, state); + ED_screen_state_toggle(C, win, area, state); } - /* warning: 'sa' may be freed */ + /* warning: 'area' may be freed */ } /* otherwise just tile the area again */ else { - ED_screen_state_toggle(C, win, sa, state); + ED_screen_state_toggle(C, win, area, state); } } /** * this function toggles: if area is maximized/full then the parent will be restored * - * \warning \a sa may be freed. + * \warning \a area may be freed. */ -ScrArea *ED_screen_state_toggle(bContext *C, wmWindow *win, ScrArea *sa, const short state) +ScrArea *ED_screen_state_toggle(bContext *C, wmWindow *win, ScrArea *area, const short state) { Main *bmain = CTX_data_main(C); wmWindowManager *wm = CTX_wm_manager(C); @@ -1212,11 +1217,11 @@ ScrArea *ED_screen_state_toggle(bContext *C, wmWindow *win, ScrArea *sa, const s bScreen *sc, *oldscreen; ARegion *region; - if (sa) { + if (area) { /* ensure we don't have a button active anymore, can crash when * switching screens with tooltip open because region and tooltip * are no longer in the same screen */ - for (region = sa->regionbase.first; region; region = region->next) { + for (region = area->regionbase.first; region; region = region->next) { UI_blocklist_free(C, ®ion->uiblocks); if (region->regiontimer) { @@ -1226,14 +1231,14 @@ ScrArea *ED_screen_state_toggle(bContext *C, wmWindow *win, ScrArea *sa, const s } /* prevent hanging status prints */ - ED_area_status_text(sa, NULL); + ED_area_status_text(area, NULL); ED_workspace_status_text(C, NULL); } - if (sa && sa->full) { + if (area && area->full) { WorkSpaceLayout *layout_old = WM_window_get_active_layout(win); /* restoring back to SCREENNORMAL */ - sc = sa->full; /* the old screen to restore */ + sc = area->full; /* the old screen to restore */ oldscreen = WM_window_get_active_screen(win); /* the one disappearing */ BLI_assert(BKE_workspace_layout_screen_get(layout_old) != sc); @@ -1254,7 +1259,7 @@ ScrArea *ED_screen_state_toggle(bContext *C, wmWindow *win, ScrArea *sa, const s old->full = NULL; } - sa->full = NULL; + area->full = NULL; if (fullsa == NULL) { if (G.debug & G_DEBUG) { @@ -1270,12 +1275,12 @@ ScrArea *ED_screen_state_toggle(bContext *C, wmWindow *win, ScrArea *sa, const s glob_area->global->flag &= ~GLOBAL_AREA_IS_HIDDEN; } /* restore the old side panels/header visibility */ - for (region = sa->regionbase.first; region; region = region->next) { + for (region = area->regionbase.first; region; region = region->next) { region->flag = region->flagfullscreen; } } - ED_area_data_swap(fullsa, sa); + ED_area_data_swap(fullsa, area); /* animtimer back */ sc->animtimer = oldscreen->animtimer; @@ -1318,15 +1323,15 @@ ScrArea *ED_screen_state_toggle(bContext *C, wmWindow *win, ScrArea *sa, const s /* use random area when we have no active one, e.g. when the * mouse is outside of the window and we open a file browser */ - if (!sa || sa->global) { - sa = oldscreen->areabase.first; + if (!area || area->global) { + area = oldscreen->areabase.first; } newa = (ScrArea *)sc->areabase.first; /* copy area */ - ED_area_data_swap(newa, sa); - newa->flag = sa->flag; /* mostly for AREA_FLAG_WASFULLSCREEN */ + ED_area_data_swap(newa, area); + newa->flag = area->flag; /* mostly for AREA_FLAG_WASFULLSCREEN */ if (state == SCREENFULL) { /* temporarily hide global areas */ @@ -1351,7 +1356,7 @@ ScrArea *ED_screen_state_toggle(bContext *C, wmWindow *win, ScrArea *sa, const s } } - sa->full = oldscreen; + area->full = oldscreen; newa->full = oldscreen; ED_screen_change(C, sc); @@ -1381,35 +1386,35 @@ ScrArea *ED_screen_temp_space_open(bContext *C, int display_type, bool dialog) { - ScrArea *sa = NULL; + ScrArea *area = NULL; switch (display_type) { case USER_TEMP_SPACE_DISPLAY_WINDOW: if (WM_window_open_temp(C, title, x, y, sizex, sizey, (int)space_type, dialog)) { - sa = CTX_wm_area(C); + area = CTX_wm_area(C); } break; case USER_TEMP_SPACE_DISPLAY_FULLSCREEN: { - ScrArea *ctx_sa = CTX_wm_area(C); + ScrArea *ctx_area = CTX_wm_area(C); - if (ctx_sa != NULL && ctx_sa->full) { - sa = ctx_sa; - ED_area_newspace(C, ctx_sa, space_type, true); - sa->flag |= AREA_FLAG_STACKED_FULLSCREEN; - ((SpaceLink *)sa->spacedata.first)->link_flag |= SPACE_FLAG_TYPE_TEMPORARY; + if (ctx_area != NULL && ctx_area->full) { + area = ctx_area; + ED_area_newspace(C, ctx_area, space_type, true); + area->flag |= AREA_FLAG_STACKED_FULLSCREEN; + ((SpaceLink *)area->spacedata.first)->link_flag |= SPACE_FLAG_TYPE_TEMPORARY; } - else if (ctx_sa != NULL && ctx_sa->spacetype == space_type) { - sa = ED_screen_state_toggle(C, CTX_wm_window(C), ctx_sa, SCREENMAXIMIZED); + else if (ctx_area != NULL && ctx_area->spacetype == space_type) { + area = ED_screen_state_toggle(C, CTX_wm_window(C), ctx_area, SCREENMAXIMIZED); } else { - sa = ED_screen_full_newspace(C, ctx_sa, (int)space_type); - ((SpaceLink *)sa->spacedata.first)->link_flag |= SPACE_FLAG_TYPE_TEMPORARY; + area = ED_screen_full_newspace(C, ctx_area, (int)space_type); + ((SpaceLink *)area->spacedata.first)->link_flag |= SPACE_FLAG_TYPE_TEMPORARY; } break; } } - return sa; + return area; } /* update frame rate info for viewport drawing */ @@ -1487,12 +1492,12 @@ void ED_screen_animation_timer(bContext *C, int redraws, int sync, int enable) sad->flag |= (enable < 0) ? ANIMPLAY_FLAG_REVERSE : 0; sad->flag |= (sync == 0) ? ANIMPLAY_FLAG_NO_SYNC : (sync == 1) ? ANIMPLAY_FLAG_SYNC : 0; - ScrArea *sa = CTX_wm_area(C); + ScrArea *area = CTX_wm_area(C); char spacetype = -1; - if (sa) { - spacetype = sa->spacetype; + if (area) { + spacetype = area->spacetype; } sad->from_anim_edit = (ELEM(spacetype, SPACE_GRAPH, SPACE_ACTION, SPACE_NLA)); @@ -1508,13 +1513,13 @@ void ED_screen_animation_timer(bContext *C, int redraws, int sync, int enable) static ARegion *time_top_left_3dwindow(bScreen *screen) { ARegion *aret = NULL; - ScrArea *sa; + ScrArea *area; int min = 10000; - for (sa = screen->areabase.first; sa; sa = sa->next) { - if (sa->spacetype == SPACE_VIEW3D) { + for (area = screen->areabase.first; area; area = area->next) { + if (area->spacetype == SPACE_VIEW3D) { ARegion *region; - for (region = sa->regionbase.first; region; region = region->next) { + for (region = area->regionbase.first; region; region = region->next) { if (region->regiontype == RGN_TYPE_WINDOW) { if (region->winrct.xmin - region->winrct.ymin < min) { aret = region; @@ -1573,11 +1578,11 @@ void ED_update_for_newframe(Main *bmain, Depsgraph *depsgraph) */ bool ED_screen_stereo3d_required(const bScreen *screen, const Scene *scene) { - ScrArea *sa; + ScrArea *area; const bool is_multiview = (scene->r.scemode & R_MULTIVIEW) != 0; - for (sa = screen->areabase.first; sa; sa = sa->next) { - switch (sa->spacetype) { + for (area = screen->areabase.first; area; area = area->next) { + switch (area->spacetype) { case SPACE_VIEW3D: { View3D *v3d; @@ -1585,10 +1590,10 @@ bool ED_screen_stereo3d_required(const bScreen *screen, const Scene *scene) continue; } - v3d = sa->spacedata.first; + v3d = area->spacedata.first; if (v3d->camera && v3d->stereo3d_camera == STEREO_3D_ID) { ARegion *region; - for (region = sa->regionbase.first; region; region = region->next) { + for (region = area->regionbase.first; region; region = region->next) { if (region->regiondata && region->regiontype == RGN_TYPE_WINDOW) { RegionView3D *rv3d = region->regiondata; if (rv3d->persp == RV3D_CAMOB) { @@ -1604,7 +1609,7 @@ bool ED_screen_stereo3d_required(const bScreen *screen, const Scene *scene) /* images should always show in stereo, even if * the file doesn't have views enabled */ - sima = sa->spacedata.first; + sima = area->spacedata.first; if (sima->image && BKE_image_is_stereo(sima->image) && (sima->iuser.flag & IMA_SHOW_STEREO)) { return true; @@ -1618,7 +1623,7 @@ bool ED_screen_stereo3d_required(const bScreen *screen, const Scene *scene) continue; } - snode = sa->spacedata.first; + snode = area->spacedata.first; if ((snode->flag & SNODE_BACKDRAW) && ED_node_is_compositor(snode)) { return true; } @@ -1631,7 +1636,7 @@ bool ED_screen_stereo3d_required(const bScreen *screen, const Scene *scene) continue; } - sseq = sa->spacedata.first; + sseq = area->spacedata.first; if (ELEM(sseq->view, SEQ_VIEW_PREVIEW, SEQ_VIEW_SEQUENCE_PREVIEW)) { return true; } @@ -1675,16 +1680,16 @@ ScrArea *ED_screen_area_find_with_spacedata(const bScreen *screen, const bool only_visible) { if (only_visible) { - for (ScrArea *sa = screen->areabase.first; sa; sa = sa->next) { - if (sa->spacedata.first == sl) { - return sa; + for (ScrArea *area = screen->areabase.first; area; area = area->next) { + if (area->spacedata.first == sl) { + return area; } } } else { - for (ScrArea *sa = screen->areabase.first; sa; sa = sa->next) { - if (BLI_findindex(&sa->spacedata, sl) != -1) { - return sa; + for (ScrArea *area = screen->areabase.first; area; area = area->next) { + if (BLI_findindex(&area->spacedata, sl) != -1) { + return area; } } } |