Cleanup: Rename bScreen variables from sc/scr to screen
Part of T74432. Mostly a careful batch rename but had to do few smaller fixes. Also ran clang-format on affected files.
This commit is contained in:
@@ -2263,11 +2263,11 @@ void ED_area_prevspace(bContext *C, ScrArea *area)
|
||||
int ED_area_header_switchbutton(const bContext *C, uiBlock *block, int yco)
|
||||
{
|
||||
ScrArea *area = CTX_wm_area(C);
|
||||
bScreen *scr = CTX_wm_screen(C);
|
||||
bScreen *screen = CTX_wm_screen(C);
|
||||
PointerRNA areaptr;
|
||||
int xco = 0.4 * U.widget_unit;
|
||||
|
||||
RNA_pointer_create(&(scr->id), &RNA_Area, area, &areaptr);
|
||||
RNA_pointer_create(&(screen->id), &RNA_Area, area, &areaptr);
|
||||
|
||||
uiDefButR(block,
|
||||
UI_BTYPE_MENU,
|
||||
|
||||
@@ -113,7 +113,7 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
|
||||
{
|
||||
wmWindow *win = CTX_wm_window(C);
|
||||
View3D *v3d = CTX_wm_view3d(C); /* This may be NULL in a lot of cases. */
|
||||
bScreen *sc = CTX_wm_screen(C);
|
||||
bScreen *screen = CTX_wm_screen(C);
|
||||
ScrArea *area = CTX_wm_area(C);
|
||||
Scene *scene = WM_window_get_active_scene(win);
|
||||
ViewLayer *view_layer = WM_window_get_active_view_layer(win);
|
||||
@@ -555,7 +555,7 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
|
||||
}
|
||||
}
|
||||
else if (CTX_data_equals(member, "annotation_data")) {
|
||||
bGPdata *gpd = ED_annotation_data_get_active_direct((ID *)sc, area, scene);
|
||||
bGPdata *gpd = ED_annotation_data_get_active_direct((ID *)screen, area, scene);
|
||||
|
||||
if (gpd) {
|
||||
CTX_data_id_pointer_set(result, &gpd->id);
|
||||
@@ -568,7 +568,7 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
|
||||
PointerRNA ptr;
|
||||
|
||||
/* Get pointer to Grease Pencil Data. */
|
||||
gpd_ptr = ED_annotation_data_get_pointers_direct((ID *)sc, area, scene, &ptr);
|
||||
gpd_ptr = ED_annotation_data_get_pointers_direct((ID *)screen, area, scene, &ptr);
|
||||
|
||||
if (gpd_ptr) {
|
||||
CTX_data_pointer_set(result, ptr.owner_id, ptr.type, ptr.data);
|
||||
@@ -588,7 +588,7 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
|
||||
}
|
||||
}
|
||||
else if (CTX_data_equals(member, "active_annotation_layer")) {
|
||||
bGPdata *gpd = ED_annotation_data_get_active_direct((ID *)sc, area, scene);
|
||||
bGPdata *gpd = ED_annotation_data_get_active_direct((ID *)screen, area, scene);
|
||||
|
||||
if (gpd) {
|
||||
bGPDlayer *gpl = BKE_gpencil_layer_active_get(gpd);
|
||||
|
||||
@@ -82,7 +82,7 @@ static ScrArea *screen_addarea_ex(ScrAreaMap *area_map,
|
||||
|
||||
return area;
|
||||
}
|
||||
static ScrArea *screen_addarea(bScreen *sc,
|
||||
static ScrArea *screen_addarea(bScreen *screen,
|
||||
ScrVert *left_bottom,
|
||||
ScrVert *left_top,
|
||||
ScrVert *right_top,
|
||||
@@ -90,22 +90,22 @@ static ScrArea *screen_addarea(bScreen *sc,
|
||||
short spacetype)
|
||||
{
|
||||
return screen_addarea_ex(
|
||||
AREAMAP_FROM_SCREEN(sc), left_bottom, left_top, right_top, right_bottom, spacetype);
|
||||
AREAMAP_FROM_SCREEN(screen), left_bottom, left_top, right_top, right_bottom, spacetype);
|
||||
}
|
||||
|
||||
static void screen_delarea(bContext *C, bScreen *sc, ScrArea *area)
|
||||
static void screen_delarea(bContext *C, bScreen *screen, ScrArea *area)
|
||||
{
|
||||
|
||||
ED_area_exit(C, area);
|
||||
|
||||
BKE_screen_area_free(area);
|
||||
|
||||
BLI_remlink(&sc->areabase, area);
|
||||
BLI_remlink(&screen->areabase, area);
|
||||
MEM_freeN(area);
|
||||
}
|
||||
|
||||
ScrArea *area_split(
|
||||
const wmWindow *win, bScreen *sc, ScrArea *area, char dir, float fac, int merge)
|
||||
const wmWindow *win, bScreen *screen, ScrArea *area, char dir, float fac, int merge)
|
||||
{
|
||||
ScrArea *newa = NULL;
|
||||
ScrVert *sv1, *sv2;
|
||||
@@ -129,19 +129,19 @@ ScrArea *area_split(
|
||||
|
||||
if (dir == 'h') {
|
||||
/* new vertices */
|
||||
sv1 = screen_geom_vertex_add(sc, area->v1->vec.x, split);
|
||||
sv2 = screen_geom_vertex_add(sc, area->v4->vec.x, split);
|
||||
sv1 = screen_geom_vertex_add(screen, area->v1->vec.x, split);
|
||||
sv2 = screen_geom_vertex_add(screen, area->v4->vec.x, split);
|
||||
|
||||
/* new edges */
|
||||
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);
|
||||
screen_geom_edge_add(screen, area->v1, sv1);
|
||||
screen_geom_edge_add(screen, sv1, area->v2);
|
||||
screen_geom_edge_add(screen, area->v3, sv2);
|
||||
screen_geom_edge_add(screen, sv2, area->v4);
|
||||
screen_geom_edge_add(screen, sv1, sv2);
|
||||
|
||||
if (fac > 0.5f) {
|
||||
/* new areas: top */
|
||||
newa = screen_addarea(sc, sv1, area->v2, area->v3, sv2, area->spacetype);
|
||||
newa = screen_addarea(screen, sv1, area->v2, area->v3, sv2, area->spacetype);
|
||||
|
||||
/* area below */
|
||||
area->v2 = sv1;
|
||||
@@ -149,7 +149,7 @@ ScrArea *area_split(
|
||||
}
|
||||
else {
|
||||
/* new areas: bottom */
|
||||
newa = screen_addarea(sc, area->v1, sv1, sv2, area->v4, area->spacetype);
|
||||
newa = screen_addarea(screen, area->v1, sv1, sv2, area->v4, area->spacetype);
|
||||
|
||||
/* area above */
|
||||
area->v1 = sv1;
|
||||
@@ -160,19 +160,19 @@ ScrArea *area_split(
|
||||
}
|
||||
else {
|
||||
/* new vertices */
|
||||
sv1 = screen_geom_vertex_add(sc, split, area->v1->vec.y);
|
||||
sv2 = screen_geom_vertex_add(sc, split, area->v2->vec.y);
|
||||
sv1 = screen_geom_vertex_add(screen, split, area->v1->vec.y);
|
||||
sv2 = screen_geom_vertex_add(screen, split, area->v2->vec.y);
|
||||
|
||||
/* new edges */
|
||||
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);
|
||||
screen_geom_edge_add(screen, area->v1, sv1);
|
||||
screen_geom_edge_add(screen, sv1, area->v4);
|
||||
screen_geom_edge_add(screen, area->v2, sv2);
|
||||
screen_geom_edge_add(screen, sv2, area->v3);
|
||||
screen_geom_edge_add(screen, sv1, sv2);
|
||||
|
||||
if (fac > 0.5f) {
|
||||
/* new areas: right */
|
||||
newa = screen_addarea(sc, sv1, sv2, area->v3, area->v4, area->spacetype);
|
||||
newa = screen_addarea(screen, sv1, sv2, area->v3, area->v4, area->spacetype);
|
||||
|
||||
/* area left */
|
||||
area->v3 = sv2;
|
||||
@@ -180,7 +180,7 @@ ScrArea *area_split(
|
||||
}
|
||||
else {
|
||||
/* new areas: left */
|
||||
newa = screen_addarea(sc, area->v1, area->v2, sv2, sv1, area->spacetype);
|
||||
newa = screen_addarea(screen, area->v1, area->v2, sv2, sv1, area->spacetype);
|
||||
|
||||
/* area right */
|
||||
area->v1 = sv1;
|
||||
@@ -192,10 +192,10 @@ ScrArea *area_split(
|
||||
|
||||
/* remove double vertices en edges */
|
||||
if (merge) {
|
||||
BKE_screen_remove_double_scrverts(sc);
|
||||
BKE_screen_remove_double_scrverts(screen);
|
||||
}
|
||||
BKE_screen_remove_double_scredges(sc);
|
||||
BKE_screen_remove_unused_scredges(sc);
|
||||
BKE_screen_remove_double_scredges(screen);
|
||||
BKE_screen_remove_unused_scredges(screen);
|
||||
|
||||
return newa;
|
||||
}
|
||||
@@ -205,27 +205,27 @@ ScrArea *area_split(
|
||||
*/
|
||||
bScreen *screen_add(Main *bmain, const char *name, const rcti *rect)
|
||||
{
|
||||
bScreen *sc;
|
||||
bScreen *screen;
|
||||
ScrVert *sv1, *sv2, *sv3, *sv4;
|
||||
|
||||
sc = BKE_libblock_alloc(bmain, ID_SCR, name, 0);
|
||||
sc->do_refresh = true;
|
||||
sc->redraws_flag = TIME_ALL_3D_WIN | TIME_ALL_ANIM_WIN;
|
||||
screen = BKE_libblock_alloc(bmain, ID_SCR, name, 0);
|
||||
screen->do_refresh = true;
|
||||
screen->redraws_flag = TIME_ALL_3D_WIN | TIME_ALL_ANIM_WIN;
|
||||
|
||||
sv1 = screen_geom_vertex_add(sc, rect->xmin, rect->ymin);
|
||||
sv2 = screen_geom_vertex_add(sc, rect->xmin, rect->ymax - 1);
|
||||
sv3 = screen_geom_vertex_add(sc, rect->xmax - 1, rect->ymax - 1);
|
||||
sv4 = screen_geom_vertex_add(sc, rect->xmax - 1, rect->ymin);
|
||||
sv1 = screen_geom_vertex_add(screen, rect->xmin, rect->ymin);
|
||||
sv2 = screen_geom_vertex_add(screen, rect->xmin, rect->ymax - 1);
|
||||
sv3 = screen_geom_vertex_add(screen, rect->xmax - 1, rect->ymax - 1);
|
||||
sv4 = screen_geom_vertex_add(screen, rect->xmax - 1, rect->ymin);
|
||||
|
||||
screen_geom_edge_add(sc, sv1, sv2);
|
||||
screen_geom_edge_add(sc, sv2, sv3);
|
||||
screen_geom_edge_add(sc, sv3, sv4);
|
||||
screen_geom_edge_add(sc, sv4, sv1);
|
||||
screen_geom_edge_add(screen, sv1, sv2);
|
||||
screen_geom_edge_add(screen, sv2, sv3);
|
||||
screen_geom_edge_add(screen, sv3, sv4);
|
||||
screen_geom_edge_add(screen, sv4, sv1);
|
||||
|
||||
/* dummy type, no spacedata */
|
||||
screen_addarea(sc, sv1, sv2, sv3, sv4, SPACE_EMPTY);
|
||||
screen_addarea(screen, sv1, sv2, sv3, sv4, SPACE_EMPTY);
|
||||
|
||||
return sc;
|
||||
return screen;
|
||||
}
|
||||
|
||||
void screen_data_copy(bScreen *to, bScreen *from)
|
||||
@@ -339,7 +339,7 @@ int area_getorientation(ScrArea *area, ScrArea *sb)
|
||||
/* Helper function to join 2 areas, it has a return value, 0=failed 1=success
|
||||
* used by the split, join operators
|
||||
*/
|
||||
int screen_area_join(bContext *C, bScreen *scr, ScrArea *sa1, ScrArea *sa2)
|
||||
int screen_area_join(bContext *C, bScreen *screen, ScrArea *sa1, ScrArea *sa2)
|
||||
{
|
||||
int dir = area_getorientation(sa1, sa2);
|
||||
|
||||
@@ -367,32 +367,32 @@ int screen_area_join(bContext *C, bScreen *scr, ScrArea *sa1, ScrArea *sa2)
|
||||
if (dir == 0) { /* sa1 to right of sa2 = W */
|
||||
sa1->v1 = sa2->v1; /* BL */
|
||||
sa1->v2 = sa2->v2; /* TL */
|
||||
screen_geom_edge_add(scr, sa1->v2, sa1->v3);
|
||||
screen_geom_edge_add(scr, sa1->v1, sa1->v4);
|
||||
screen_geom_edge_add(screen, sa1->v2, sa1->v3);
|
||||
screen_geom_edge_add(screen, sa1->v1, sa1->v4);
|
||||
}
|
||||
else if (dir == 1) { /* sa1 to bottom of sa2 = N */
|
||||
sa1->v2 = sa2->v2; /* TL */
|
||||
sa1->v3 = sa2->v3; /* TR */
|
||||
screen_geom_edge_add(scr, sa1->v1, sa1->v2);
|
||||
screen_geom_edge_add(scr, sa1->v3, sa1->v4);
|
||||
screen_geom_edge_add(screen, sa1->v1, sa1->v2);
|
||||
screen_geom_edge_add(screen, sa1->v3, sa1->v4);
|
||||
}
|
||||
else if (dir == 2) { /* sa1 to left of sa2 = E */
|
||||
sa1->v3 = sa2->v3; /* TR */
|
||||
sa1->v4 = sa2->v4; /* BR */
|
||||
screen_geom_edge_add(scr, sa1->v2, sa1->v3);
|
||||
screen_geom_edge_add(scr, sa1->v1, sa1->v4);
|
||||
screen_geom_edge_add(screen, sa1->v2, sa1->v3);
|
||||
screen_geom_edge_add(screen, sa1->v1, sa1->v4);
|
||||
}
|
||||
else if (dir == 3) { /* sa1 on top of sa2 = S */
|
||||
sa1->v1 = sa2->v1; /* BL */
|
||||
sa1->v4 = sa2->v4; /* BR */
|
||||
screen_geom_edge_add(scr, sa1->v1, sa1->v2);
|
||||
screen_geom_edge_add(scr, sa1->v3, sa1->v4);
|
||||
screen_geom_edge_add(screen, sa1->v1, sa1->v2);
|
||||
screen_geom_edge_add(screen, sa1->v3, sa1->v4);
|
||||
}
|
||||
|
||||
screen_delarea(C, scr, sa2);
|
||||
BKE_screen_remove_double_scrverts(scr);
|
||||
screen_delarea(C, screen, sa2);
|
||||
BKE_screen_remove_double_scrverts(screen);
|
||||
/* Update preview thumbnail */
|
||||
BKE_icon_changed(scr->id.icon_id);
|
||||
BKE_icon_changed(screen->id.icon_id);
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -682,16 +682,16 @@ static void screen_cursor_set(wmWindow *win, const int xy[2])
|
||||
*/
|
||||
void ED_screen_set_active_region(bContext *C, wmWindow *win, const int xy[2])
|
||||
{
|
||||
bScreen *scr = WM_window_get_active_screen(win);
|
||||
if (scr == NULL) {
|
||||
bScreen *screen = WM_window_get_active_screen(win);
|
||||
if (screen == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
ScrArea *area = NULL;
|
||||
ARegion *region;
|
||||
ARegion *region_prev = scr->active_region;
|
||||
ARegion *region_prev = screen->active_region;
|
||||
|
||||
ED_screen_areas_iter(win, scr, area_iter)
|
||||
ED_screen_areas_iter(win, screen, area_iter)
|
||||
{
|
||||
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) {
|
||||
@@ -706,19 +706,19 @@ void ED_screen_set_active_region(bContext *C, wmWindow *win, const int xy[2])
|
||||
/* Make overlap active when mouse over. */
|
||||
for (region = area->regionbase.first; region; region = region->next) {
|
||||
if (ED_region_contains_xy(region, xy)) {
|
||||
scr->active_region = region;
|
||||
screen->active_region = region;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
scr->active_region = NULL;
|
||||
screen->active_region = NULL;
|
||||
}
|
||||
|
||||
/* Check for redraw headers. */
|
||||
if (region_prev != scr->active_region) {
|
||||
if (region_prev != screen->active_region) {
|
||||
|
||||
ED_screen_areas_iter(win, scr, area_iter)
|
||||
ED_screen_areas_iter(win, screen, area_iter)
|
||||
{
|
||||
bool do_draw = false;
|
||||
|
||||
@@ -729,7 +729,7 @@ void ED_screen_set_active_region(bContext *C, wmWindow *win, const int xy[2])
|
||||
area_iter->type->deactivate(area_iter);
|
||||
}
|
||||
|
||||
if (region == region_prev && region != scr->active_region) {
|
||||
if (region == region_prev && region != screen->active_region) {
|
||||
wmGizmoMap *gzmap = region_prev->gizmo_map;
|
||||
if (gzmap) {
|
||||
if (WM_gizmo_highlight_set(gzmap, NULL)) {
|
||||
@@ -738,7 +738,7 @@ void ED_screen_set_active_region(bContext *C, wmWindow *win, const int xy[2])
|
||||
}
|
||||
}
|
||||
|
||||
if (region == region_prev || region == scr->active_region) {
|
||||
if (region == region_prev || region == screen->active_region) {
|
||||
do_draw = true;
|
||||
}
|
||||
}
|
||||
@@ -755,19 +755,19 @@ void ED_screen_set_active_region(bContext *C, wmWindow *win, const int xy[2])
|
||||
|
||||
/* Cursors, for time being set always on edges,
|
||||
* otherwise the active region doesn't switch. */
|
||||
if (scr->active_region == NULL) {
|
||||
if (screen->active_region == NULL) {
|
||||
screen_cursor_set(win, xy);
|
||||
}
|
||||
else {
|
||||
/* Notifier invokes freeing the buttons... causing a bit too much redraws. */
|
||||
region_cursor_set_ex(win, area, scr->active_region, region_prev != scr->active_region);
|
||||
region_cursor_set_ex(win, area, screen->active_region, region_prev != screen->active_region);
|
||||
|
||||
if (region_prev != scr->active_region) {
|
||||
if (region_prev != screen->active_region) {
|
||||
/* This used to be a notifier, but needs to be done immediate
|
||||
* because it can undo setting the right button as active due
|
||||
* to delayed notifier handling. */
|
||||
if (C) {
|
||||
UI_screen_free_active_but(C, scr);
|
||||
UI_screen_free_active_but(C, screen);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -776,10 +776,10 @@ void ED_screen_set_active_region(bContext *C, wmWindow *win, const int xy[2])
|
||||
int ED_screen_area_active(const bContext *C)
|
||||
{
|
||||
wmWindow *win = CTX_wm_window(C);
|
||||
bScreen *sc = CTX_wm_screen(C);
|
||||
bScreen *screen = CTX_wm_screen(C);
|
||||
ScrArea *area = CTX_wm_area(C);
|
||||
|
||||
if (win && sc && area) {
|
||||
if (win && screen && area) {
|
||||
AZone *az = ED_area_actionzone_find_xy(area, &win->eventstate->x);
|
||||
ARegion *region;
|
||||
|
||||
@@ -788,7 +788,7 @@ int ED_screen_area_active(const bContext *C)
|
||||
}
|
||||
|
||||
for (region = area->regionbase.first; region; region = region->next) {
|
||||
if (region == sc->active_region) {
|
||||
if (region == screen->active_region) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@@ -1000,17 +1000,17 @@ bScreen *screen_change_prepare(
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void screen_change_update(bContext *C, wmWindow *win, bScreen *sc)
|
||||
void screen_change_update(bContext *C, wmWindow *win, bScreen *screen)
|
||||
{
|
||||
Scene *scene = WM_window_get_active_scene(win);
|
||||
WorkSpace *workspace = BKE_workspace_active_get(win->workspace_hook);
|
||||
WorkSpaceLayout *layout = BKE_workspace_layout_find(workspace, sc);
|
||||
WorkSpaceLayout *layout = BKE_workspace_layout_find(workspace, screen);
|
||||
|
||||
CTX_wm_window_set(C, win); /* stores C->wm.screen... hrmf */
|
||||
|
||||
ED_screen_refresh(CTX_wm_manager(C), win);
|
||||
|
||||
BKE_screen_view3d_scene_sync(sc, scene); /* sync new screen with scene data */
|
||||
BKE_screen_view3d_scene_sync(screen, scene); /* sync new screen with scene data */
|
||||
WM_event_add_notifier(C, NC_WINDOW, NULL);
|
||||
WM_event_add_notifier(C, NC_SCREEN | ND_LAYOUTSET, layout);
|
||||
|
||||
@@ -1026,16 +1026,16 @@ void screen_change_update(bContext *C, wmWindow *win, bScreen *sc)
|
||||
* \warning Do NOT call in area/region queues!
|
||||
* \returns if screen changing was successful.
|
||||
*/
|
||||
bool ED_screen_change(bContext *C, bScreen *sc)
|
||||
bool ED_screen_change(bContext *C, bScreen *screen)
|
||||
{
|
||||
Main *bmain = CTX_data_main(C);
|
||||
wmWindow *win = CTX_wm_window(C);
|
||||
bScreen *screen_old = CTX_wm_screen(C);
|
||||
bScreen *screen_new = screen_change_prepare(screen_old, sc, bmain, C, win);
|
||||
bScreen *screen_new = screen_change_prepare(screen_old, screen, bmain, C, win);
|
||||
|
||||
if (screen_new) {
|
||||
WorkSpace *workspace = BKE_workspace_active_get(win->workspace_hook);
|
||||
WM_window_set_active_screen(win, workspace, sc);
|
||||
WM_window_set_active_screen(win, workspace, screen);
|
||||
screen_change_update(C, win, screen_new);
|
||||
|
||||
return true;
|
||||
@@ -1054,7 +1054,7 @@ static void screen_set_3dview_camera(Scene *scene,
|
||||
|
||||
if (!v3d->camera || !BKE_view_layer_base_find(view_layer, v3d->camera)) {
|
||||
v3d->camera = BKE_view_layer_camera_find(view_layer);
|
||||
// XXX if (sc == curscreen) handle_view3d_lock();
|
||||
// XXX if (screen == curscreen) handle_view3d_lock();
|
||||
if (!v3d->camera) {
|
||||
ARegion *region;
|
||||
ListBase *regionbase;
|
||||
@@ -1214,7 +1214,7 @@ ScrArea *ED_screen_state_toggle(bContext *C, wmWindow *win, ScrArea *area, const
|
||||
Main *bmain = CTX_data_main(C);
|
||||
wmWindowManager *wm = CTX_wm_manager(C);
|
||||
WorkSpace *workspace = WM_window_get_active_workspace(win);
|
||||
bScreen *sc, *oldscreen;
|
||||
bScreen *screen, *oldscreen;
|
||||
ARegion *region;
|
||||
|
||||
if (area) {
|
||||
@@ -1238,18 +1238,18 @@ ScrArea *ED_screen_state_toggle(bContext *C, wmWindow *win, ScrArea *area, const
|
||||
if (area && area->full) {
|
||||
WorkSpaceLayout *layout_old = WM_window_get_active_layout(win);
|
||||
/* restoring back to SCREENNORMAL */
|
||||
sc = area->full; /* the old screen to restore */
|
||||
screen = 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);
|
||||
BLI_assert(BKE_workspace_layout_screen_get(layout_old) != screen);
|
||||
BLI_assert(BKE_workspace_layout_screen_get(layout_old)->state != SCREENNORMAL);
|
||||
|
||||
sc->state = SCREENNORMAL;
|
||||
sc->flag = oldscreen->flag;
|
||||
screen->state = SCREENNORMAL;
|
||||
screen->flag = oldscreen->flag;
|
||||
|
||||
/* find old area to restore from */
|
||||
ScrArea *fullsa = NULL;
|
||||
for (ScrArea *old = sc->areabase.first; old; old = old->next) {
|
||||
for (ScrArea *old = screen->areabase.first; old; old = old->next) {
|
||||
/* area to restore from is always first */
|
||||
if (old->full && !fullsa) {
|
||||
fullsa = old;
|
||||
@@ -1283,10 +1283,10 @@ ScrArea *ED_screen_state_toggle(bContext *C, wmWindow *win, ScrArea *area, const
|
||||
ED_area_data_swap(fullsa, area);
|
||||
|
||||
/* animtimer back */
|
||||
sc->animtimer = oldscreen->animtimer;
|
||||
screen->animtimer = oldscreen->animtimer;
|
||||
oldscreen->animtimer = NULL;
|
||||
|
||||
ED_screen_change(C, sc);
|
||||
ED_screen_change(C, screen);
|
||||
|
||||
BKE_workspace_layout_remove(CTX_data_main(C), workspace, layout_old);
|
||||
|
||||
@@ -1294,7 +1294,7 @@ ScrArea *ED_screen_state_toggle(bContext *C, wmWindow *win, ScrArea *area, const
|
||||
* screen handling as it uses the area coords which aren't updated yet.
|
||||
* Without doing so, the screen handling gets wrong area coords,
|
||||
* which in worst case can lead to crashes (see T43139) */
|
||||
sc->skip_handling = true;
|
||||
screen->skip_handling = true;
|
||||
}
|
||||
else {
|
||||
/* change from SCREENNORMAL to new state */
|
||||
@@ -1311,14 +1311,14 @@ ScrArea *ED_screen_state_toggle(bContext *C, wmWindow *win, ScrArea *area, const
|
||||
|
||||
layout_new = ED_workspace_layout_add(bmain, workspace, win, newname);
|
||||
|
||||
sc = BKE_workspace_layout_screen_get(layout_new);
|
||||
sc->state = state;
|
||||
sc->redraws_flag = oldscreen->redraws_flag;
|
||||
sc->temp = oldscreen->temp;
|
||||
sc->flag = oldscreen->flag;
|
||||
screen = BKE_workspace_layout_screen_get(layout_new);
|
||||
screen->state = state;
|
||||
screen->redraws_flag = oldscreen->redraws_flag;
|
||||
screen->temp = oldscreen->temp;
|
||||
screen->flag = oldscreen->flag;
|
||||
|
||||
/* timer */
|
||||
sc->animtimer = oldscreen->animtimer;
|
||||
screen->animtimer = oldscreen->animtimer;
|
||||
oldscreen->animtimer = NULL;
|
||||
|
||||
/* use random area when we have no active one, e.g. when the
|
||||
@@ -1327,7 +1327,7 @@ ScrArea *ED_screen_state_toggle(bContext *C, wmWindow *win, ScrArea *area, const
|
||||
area = oldscreen->areabase.first;
|
||||
}
|
||||
|
||||
newa = (ScrArea *)sc->areabase.first;
|
||||
newa = (ScrArea *)screen->areabase.first;
|
||||
|
||||
/* copy area */
|
||||
ED_area_data_swap(newa, area);
|
||||
@@ -1359,13 +1359,13 @@ ScrArea *ED_screen_state_toggle(bContext *C, wmWindow *win, ScrArea *area, const
|
||||
area->full = oldscreen;
|
||||
newa->full = oldscreen;
|
||||
|
||||
ED_screen_change(C, sc);
|
||||
ED_screen_change(C, screen);
|
||||
}
|
||||
|
||||
/* XXX bad code: setscreen() ends with first area active. fullscreen render assumes this too */
|
||||
CTX_wm_area_set(C, sc->areabase.first);
|
||||
CTX_wm_area_set(C, screen->areabase.first);
|
||||
|
||||
return sc->areabase.first;
|
||||
return screen->areabase.first;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1557,11 +1557,11 @@ void ED_update_for_newframe(Main *bmain, Depsgraph *depsgraph)
|
||||
#ifdef DURIAN_CAMERA_SWITCH
|
||||
void *camera = BKE_scene_camera_switch_find(scene);
|
||||
if (camera && scene->camera != camera) {
|
||||
bScreen *sc;
|
||||
bScreen *screen;
|
||||
scene->camera = camera;
|
||||
/* are there cameras in the views that are not in the scene? */
|
||||
for (sc = bmain->screens.first; sc; sc = sc->id.next) {
|
||||
BKE_screen_view3d_scene_sync(sc, scene);
|
||||
for (screen = bmain->screens.first; screen; screen = screen->id.next) {
|
||||
BKE_screen_view3d_scene_sync(screen, scene);
|
||||
}
|
||||
DEG_id_tag_update(&scene->id, ID_RECALC_COPY_ON_WRITE);
|
||||
}
|
||||
|
||||
@@ -57,9 +57,9 @@ ScrVert *screen_geom_vertex_add_ex(ScrAreaMap *area_map, short x, short y)
|
||||
BLI_addtail(&area_map->vertbase, sv);
|
||||
return sv;
|
||||
}
|
||||
ScrVert *screen_geom_vertex_add(bScreen *sc, short x, short y)
|
||||
ScrVert *screen_geom_vertex_add(bScreen *screen, short x, short y)
|
||||
{
|
||||
return screen_geom_vertex_add_ex(AREAMAP_FROM_SCREEN(sc), x, y);
|
||||
return screen_geom_vertex_add_ex(AREAMAP_FROM_SCREEN(screen), x, y);
|
||||
}
|
||||
|
||||
ScrEdge *screen_geom_edge_add_ex(ScrAreaMap *area_map, ScrVert *v1, ScrVert *v2)
|
||||
@@ -73,9 +73,9 @@ ScrEdge *screen_geom_edge_add_ex(ScrAreaMap *area_map, ScrVert *v1, ScrVert *v2)
|
||||
BLI_addtail(&area_map->edgebase, se);
|
||||
return se;
|
||||
}
|
||||
ScrEdge *screen_geom_edge_add(bScreen *sc, ScrVert *v1, ScrVert *v2)
|
||||
ScrEdge *screen_geom_edge_add(bScreen *screen, ScrVert *v1, ScrVert *v2)
|
||||
{
|
||||
return screen_geom_edge_add_ex(AREAMAP_FROM_SCREEN(sc), v1, v2);
|
||||
return screen_geom_edge_add_ex(AREAMAP_FROM_SCREEN(screen), v1, v2);
|
||||
}
|
||||
|
||||
bool screen_geom_edge_is_horizontal(ScrEdge *se)
|
||||
@@ -153,7 +153,7 @@ ScrEdge *screen_geom_find_active_scredge(const wmWindow *win,
|
||||
* * Ensure areas have a minimum height.
|
||||
* * Correctly set global areas to their fixed height.
|
||||
*/
|
||||
void screen_geom_vertices_scale(const wmWindow *win, bScreen *sc)
|
||||
void screen_geom_vertices_scale(const wmWindow *win, bScreen *screen)
|
||||
{
|
||||
rcti window_rect, screen_rect;
|
||||
|
||||
@@ -170,7 +170,7 @@ void screen_geom_vertices_scale(const wmWindow *win, bScreen *sc)
|
||||
min[0] = min[1] = 20000.0f;
|
||||
max[0] = max[1] = 0.0f;
|
||||
|
||||
for (sv = sc->vertbase.first; sv; sv = sv->next) {
|
||||
for (sv = screen->vertbase.first; sv; sv = sv->next) {
|
||||
const float fv[2] = {(float)sv->vec.x, (float)sv->vec.y};
|
||||
minmax_v2v2_v2(min, max, fv);
|
||||
}
|
||||
@@ -183,7 +183,7 @@ void screen_geom_vertices_scale(const wmWindow *win, bScreen *sc)
|
||||
const float facy = ((float)screen_size_y - 1) / ((float)screen_size_y_prev - 1);
|
||||
|
||||
/* make sure it fits! */
|
||||
for (sv = sc->vertbase.first; sv; sv = sv->next) {
|
||||
for (sv = screen->vertbase.first; sv; sv = sv->next) {
|
||||
sv->vec.x = screen_rect.xmin + round_fl_to_short((sv->vec.x - min[0]) * facx);
|
||||
CLAMP(sv->vec.x, screen_rect.xmin, screen_rect.xmax - 1);
|
||||
|
||||
@@ -198,17 +198,17 @@ void screen_geom_vertices_scale(const wmWindow *win, bScreen *sc)
|
||||
|
||||
if (facy > 1) {
|
||||
/* Keep timeline small in video edit workspace. */
|
||||
for (ScrArea *area = sc->areabase.first; area; area = area->next) {
|
||||
for (ScrArea *area = screen->areabase.first; area; area = area->next) {
|
||||
if (area->spacetype == SPACE_ACTION && area->v1->vec.y == screen_rect.ymin &&
|
||||
screen_geom_area_height(area) <= headery * facy + 1) {
|
||||
ScrEdge *se = BKE_screen_find_edge(sc, area->v2, area->v3);
|
||||
ScrEdge *se = BKE_screen_find_edge(screen, area->v2, area->v3);
|
||||
if (se) {
|
||||
const int yval = area->v1->vec.y + headery - 1;
|
||||
|
||||
screen_geom_select_connected_edge(win, se);
|
||||
|
||||
/* all selected vertices get the right offset */
|
||||
for (sv = sc->vertbase.first; sv; sv = sv->next) {
|
||||
for (sv = screen->vertbase.first; sv; sv = sv->next) {
|
||||
/* if is a collapsed area */
|
||||
if (sv != area->v1 && sv != area->v4) {
|
||||
if (sv->flag) {
|
||||
@@ -222,17 +222,17 @@ void screen_geom_vertices_scale(const wmWindow *win, bScreen *sc)
|
||||
}
|
||||
if (facy < 1) {
|
||||
/* make each window at least ED_area_headersize() high */
|
||||
for (ScrArea *area = sc->areabase.first; area; area = area->next) {
|
||||
for (ScrArea *area = screen->areabase.first; area; area = area->next) {
|
||||
if (screen_geom_area_height(area) < headery) {
|
||||
/* lower edge */
|
||||
ScrEdge *se = BKE_screen_find_edge(sc, area->v4, area->v1);
|
||||
ScrEdge *se = BKE_screen_find_edge(screen, area->v4, area->v1);
|
||||
if (se && area->v1 != area->v2) {
|
||||
const int yval = area->v2->vec.y - headery + 1;
|
||||
|
||||
screen_geom_select_connected_edge(win, se);
|
||||
|
||||
/* all selected vertices get the right offset */
|
||||
for (sv = sc->vertbase.first; sv; sv = sv->next) {
|
||||
for (sv = screen->vertbase.first; sv; sv = sv->next) {
|
||||
/* if is not a collapsed area */
|
||||
if (sv != area->v2 && sv != area->v3) {
|
||||
if (sv->flag) {
|
||||
@@ -355,7 +355,7 @@ short screen_geom_find_area_split_point(const ScrArea *area,
|
||||
*/
|
||||
void screen_geom_select_connected_edge(const wmWindow *win, ScrEdge *edge)
|
||||
{
|
||||
bScreen *sc = WM_window_get_active_screen(win);
|
||||
bScreen *screen = WM_window_get_active_screen(win);
|
||||
bool oneselected = true;
|
||||
char dir;
|
||||
|
||||
@@ -369,7 +369,7 @@ void screen_geom_select_connected_edge(const wmWindow *win, ScrEdge *edge)
|
||||
dir = 'h';
|
||||
}
|
||||
|
||||
ED_screen_verts_iter(win, sc, sv)
|
||||
ED_screen_verts_iter(win, screen, sv)
|
||||
{
|
||||
sv->flag = 0;
|
||||
}
|
||||
@@ -379,7 +379,7 @@ void screen_geom_select_connected_edge(const wmWindow *win, ScrEdge *edge)
|
||||
|
||||
while (oneselected) {
|
||||
oneselected = false;
|
||||
for (ScrEdge *se = sc->edgebase.first; se; se = se->next) {
|
||||
for (ScrEdge *se = screen->edgebase.first; se; se = se->next) {
|
||||
if (se->v1->flag + se->v2->flag == 1) {
|
||||
if (dir == 'h') {
|
||||
if (se->v1->vec.y == se->v2->vec.y) {
|
||||
|
||||
@@ -44,15 +44,15 @@ void region_toggle_hidden(struct bContext *C, ARegion *region, const bool do_fad
|
||||
bScreen *screen_add(struct Main *bmain, const char *name, const rcti *rect);
|
||||
void screen_data_copy(bScreen *to, bScreen *from);
|
||||
void screen_new_activate_prepare(const wmWindow *win, bScreen *screen_new);
|
||||
void screen_change_update(struct bContext *C, wmWindow *win, bScreen *sc);
|
||||
void screen_change_update(struct bContext *C, wmWindow *win, bScreen *screen);
|
||||
bScreen *screen_change_prepare(bScreen *screen_old,
|
||||
bScreen *screen_new,
|
||||
struct Main *bmain,
|
||||
struct bContext *C,
|
||||
wmWindow *win);
|
||||
ScrArea *area_split(
|
||||
const wmWindow *win, bScreen *sc, ScrArea *area, char dir, float fac, int merge);
|
||||
int screen_area_join(struct bContext *C, bScreen *scr, ScrArea *sa1, ScrArea *sa2);
|
||||
const wmWindow *win, bScreen *screen, ScrArea *area, char dir, float fac, int merge);
|
||||
int screen_area_join(struct bContext *C, bScreen *screen, ScrArea *sa1, ScrArea *sa2);
|
||||
int area_getorientation(ScrArea *area, ScrArea *sb);
|
||||
|
||||
struct AZone *ED_area_actionzone_find_xy(ScrArea *area, const int xy[2]);
|
||||
@@ -61,9 +61,9 @@ struct AZone *ED_area_actionzone_find_xy(ScrArea *area, const int xy[2]);
|
||||
int screen_geom_area_height(const ScrArea *area);
|
||||
int screen_geom_area_width(const ScrArea *area);
|
||||
ScrVert *screen_geom_vertex_add_ex(ScrAreaMap *area_map, short x, short y);
|
||||
ScrVert *screen_geom_vertex_add(bScreen *sc, short x, short y);
|
||||
ScrVert *screen_geom_vertex_add(bScreen *screen, short x, short y);
|
||||
ScrEdge *screen_geom_edge_add_ex(ScrAreaMap *area_map, ScrVert *v1, ScrVert *v2);
|
||||
ScrEdge *screen_geom_edge_add(bScreen *sc, ScrVert *v1, ScrVert *v2);
|
||||
ScrEdge *screen_geom_edge_add(bScreen *screen, ScrVert *v1, ScrVert *v2);
|
||||
bool screen_geom_edge_is_horizontal(ScrEdge *se);
|
||||
ScrEdge *screen_geom_area_map_find_active_scredge(const struct ScrAreaMap *area_map,
|
||||
const rcti *bounds_rect,
|
||||
@@ -73,7 +73,7 @@ ScrEdge *screen_geom_find_active_scredge(const wmWindow *win,
|
||||
const bScreen *screen,
|
||||
const int mx,
|
||||
const int my);
|
||||
void screen_geom_vertices_scale(const wmWindow *win, bScreen *sc);
|
||||
void screen_geom_vertices_scale(const wmWindow *win, bScreen *screen);
|
||||
short screen_geom_find_area_split_point(const ScrArea *area,
|
||||
const rcti *window_rect,
|
||||
char dir,
|
||||
|
||||
@@ -594,8 +594,8 @@ bool ED_operator_mask(bContext *C)
|
||||
if (area && area->spacedata.first) {
|
||||
switch (area->spacetype) {
|
||||
case SPACE_CLIP: {
|
||||
SpaceClip *sc = area->spacedata.first;
|
||||
return ED_space_clip_check_show_maskedit(sc);
|
||||
SpaceClip *screen = area->spacedata.first;
|
||||
return ED_space_clip_check_show_maskedit(screen);
|
||||
}
|
||||
case SPACE_SEQ: {
|
||||
SpaceSeq *sseq = area->spacedata.first;
|
||||
@@ -893,9 +893,9 @@ static AZone *area_actionzone_refresh_xy(ScrArea *area, const int xy[2], const b
|
||||
}
|
||||
|
||||
/* Finds an action-zone by position in entire screen so azones can overlap. */
|
||||
static AZone *screen_actionzone_find_xy(bScreen *sc, const int xy[2])
|
||||
static AZone *screen_actionzone_find_xy(bScreen *screen, const int xy[2])
|
||||
{
|
||||
for (ScrArea *area = sc->areabase.first; area; area = area->next) {
|
||||
for (ScrArea *area = screen->areabase.first; area; area = area->next) {
|
||||
AZone *az = area_actionzone_refresh_xy(area, xy, true);
|
||||
if (az != NULL) {
|
||||
return az;
|
||||
@@ -905,9 +905,9 @@ static AZone *screen_actionzone_find_xy(bScreen *sc, const int xy[2])
|
||||
}
|
||||
|
||||
/* Returns the area that the azone belongs to */
|
||||
static ScrArea *screen_actionzone_area(bScreen *sc, const AZone *az)
|
||||
static ScrArea *screen_actionzone_area(bScreen *screen, const AZone *az)
|
||||
{
|
||||
for (ScrArea *area = sc->areabase.first; area; area = area->next) {
|
||||
for (ScrArea *area = screen->areabase.first; area; area = area->next) {
|
||||
for (AZone *zone = area->actionzones.first; zone; zone = zone->next) {
|
||||
if (zone == az) {
|
||||
return area;
|
||||
@@ -968,8 +968,8 @@ static void actionzone_apply(bContext *C, wmOperator *op, int type)
|
||||
|
||||
static int actionzone_invoke(bContext *C, wmOperator *op, const wmEvent *event)
|
||||
{
|
||||
bScreen *sc = CTX_wm_screen(C);
|
||||
AZone *az = screen_actionzone_find_xy(sc, &event->x);
|
||||
bScreen *screen = CTX_wm_screen(C);
|
||||
AZone *az = screen_actionzone_find_xy(screen, &event->x);
|
||||
sActionzoneData *sad;
|
||||
|
||||
/* Quick escape - Scroll azones only hide/unhide the scroll-bars,
|
||||
@@ -980,7 +980,7 @@ static int actionzone_invoke(bContext *C, wmOperator *op, const wmEvent *event)
|
||||
|
||||
/* ok we do the action-zone */
|
||||
sad = op->customdata = MEM_callocN(sizeof(sActionzoneData), "sActionzoneData");
|
||||
sad->sa1 = screen_actionzone_area(sc, az);
|
||||
sad->sa1 = screen_actionzone_area(screen, az);
|
||||
sad->az = az;
|
||||
sad->x = event->x;
|
||||
sad->y = event->y;
|
||||
@@ -1003,7 +1003,7 @@ static int actionzone_invoke(bContext *C, wmOperator *op, const wmEvent *event)
|
||||
|
||||
static int actionzone_modal(bContext *C, wmOperator *op, const wmEvent *event)
|
||||
{
|
||||
bScreen *sc = CTX_wm_screen(C);
|
||||
bScreen *screen = CTX_wm_screen(C);
|
||||
sActionzoneData *sad = op->customdata;
|
||||
|
||||
switch (event->type) {
|
||||
@@ -1044,9 +1044,9 @@ static int actionzone_modal(bContext *C, wmOperator *op, const wmEvent *event)
|
||||
/* Have we dragged off the zone and are not on an edge? */
|
||||
if ((ED_area_actionzone_find_xy(sad->sa1, &event->x) != sad->az) &&
|
||||
(screen_geom_area_map_find_active_scredge(
|
||||
AREAMAP_FROM_SCREEN(sc), &screen_rect, event->x, event->y) == NULL)) {
|
||||
AREAMAP_FROM_SCREEN(screen), &screen_rect, event->x, event->y) == NULL)) {
|
||||
/* Are we still in same area? */
|
||||
if (BKE_screen_find_area_xy(sc, SPACE_TYPE_ANY, event->x, event->y) == sad->sa1) {
|
||||
if (BKE_screen_find_area_xy(screen, SPACE_TYPE_ANY, event->x, event->y) == sad->sa1) {
|
||||
/* Same area, so possible split. */
|
||||
WM_cursor_set(
|
||||
win, (ELEM(sad->gesture_dir, 'n', 's')) ? WM_CURSOR_H_SPLIT : WM_CURSOR_V_SPLIT);
|
||||
@@ -1081,7 +1081,7 @@ static int actionzone_modal(bContext *C, wmOperator *op, const wmEvent *event)
|
||||
/* gesture is large enough? */
|
||||
if (is_gesture) {
|
||||
/* second area, for join when (sa1 != sa2) */
|
||||
sad->sa2 = BKE_screen_find_area_xy(sc, SPACE_TYPE_ANY, event->x, event->y);
|
||||
sad->sa2 = BKE_screen_find_area_xy(screen, SPACE_TYPE_ANY, event->x, event->y);
|
||||
/* apply sends event */
|
||||
actionzone_apply(C, op, sad->az->type);
|
||||
actionzone_exit(op);
|
||||
@@ -1136,12 +1136,12 @@ static ScrEdge *screen_area_edge_from_cursor(const bContext *C,
|
||||
ScrArea **r_sa2)
|
||||
{
|
||||
wmWindow *win = CTX_wm_window(C);
|
||||
bScreen *sc = CTX_wm_screen(C);
|
||||
bScreen *screen = CTX_wm_screen(C);
|
||||
ScrEdge *actedge;
|
||||
rcti window_rect;
|
||||
WM_window_rect_calc(win, &window_rect);
|
||||
actedge = screen_geom_area_map_find_active_scredge(
|
||||
AREAMAP_FROM_SCREEN(sc), &window_rect, cursor[0], cursor[1]);
|
||||
AREAMAP_FROM_SCREEN(screen), &window_rect, cursor[0], cursor[1]);
|
||||
*r_sa1 = NULL;
|
||||
*r_sa2 = NULL;
|
||||
if (actedge == NULL) {
|
||||
@@ -1150,12 +1150,12 @@ static ScrEdge *screen_area_edge_from_cursor(const bContext *C,
|
||||
int borderwidth = (4 * UI_DPI_FAC);
|
||||
ScrArea *sa1, *sa2;
|
||||
if (screen_geom_edge_is_horizontal(actedge)) {
|
||||
sa1 = BKE_screen_find_area_xy(sc, SPACE_TYPE_ANY, cursor[0], cursor[1] + borderwidth);
|
||||
sa2 = BKE_screen_find_area_xy(sc, SPACE_TYPE_ANY, cursor[0], cursor[1] - borderwidth);
|
||||
sa1 = BKE_screen_find_area_xy(screen, SPACE_TYPE_ANY, cursor[0], cursor[1] + borderwidth);
|
||||
sa2 = BKE_screen_find_area_xy(screen, SPACE_TYPE_ANY, cursor[0], cursor[1] - borderwidth);
|
||||
}
|
||||
else {
|
||||
sa1 = BKE_screen_find_area_xy(sc, SPACE_TYPE_ANY, cursor[0] + borderwidth, cursor[1]);
|
||||
sa2 = BKE_screen_find_area_xy(sc, SPACE_TYPE_ANY, cursor[0] - borderwidth, cursor[1]);
|
||||
sa1 = BKE_screen_find_area_xy(screen, SPACE_TYPE_ANY, cursor[0] + borderwidth, cursor[1]);
|
||||
sa2 = BKE_screen_find_area_xy(screen, SPACE_TYPE_ANY, cursor[0] - borderwidth, cursor[1]);
|
||||
}
|
||||
bool isGlobal = ((sa1 && ED_area_is_global(sa1)) || (sa2 && ED_area_is_global(sa2)));
|
||||
if (!isGlobal) {
|
||||
@@ -1454,8 +1454,12 @@ typedef struct sAreaMoveData {
|
||||
|
||||
/* helper call to move area-edge, sets limits
|
||||
* need window bounds in order to get correct limits */
|
||||
static void area_move_set_limits(
|
||||
wmWindow *win, bScreen *sc, int dir, int *bigger, int *smaller, bool *use_bigger_smaller_snap)
|
||||
static void area_move_set_limits(wmWindow *win,
|
||||
bScreen *screen,
|
||||
int dir,
|
||||
int *bigger,
|
||||
int *smaller,
|
||||
bool *use_bigger_smaller_snap)
|
||||
{
|
||||
rcti window_rect;
|
||||
int areaminy = ED_area_headersize();
|
||||
@@ -1507,7 +1511,7 @@ static void area_move_set_limits(
|
||||
|
||||
WM_window_rect_calc(win, &window_rect);
|
||||
|
||||
for (ScrArea *area = sc->areabase.first; area; area = area->next) {
|
||||
for (ScrArea *area = screen->areabase.first; area; area = area->next) {
|
||||
if (dir == 'h') {
|
||||
int y1;
|
||||
areamin = areaminy;
|
||||
@@ -1557,7 +1561,7 @@ static void area_move_set_limits(
|
||||
/* return 0: init failed */
|
||||
static int area_move_init(bContext *C, wmOperator *op)
|
||||
{
|
||||
bScreen *sc = CTX_wm_screen(C);
|
||||
bScreen *screen = CTX_wm_screen(C);
|
||||
wmWindow *win = CTX_wm_window(C);
|
||||
ScrEdge *actedge;
|
||||
sAreaMoveData *md;
|
||||
@@ -1568,7 +1572,7 @@ static int area_move_init(bContext *C, wmOperator *op)
|
||||
y = RNA_int_get(op->ptr, "y");
|
||||
|
||||
/* setup */
|
||||
actedge = screen_geom_find_active_scredge(win, sc, x, y);
|
||||
actedge = screen_geom_find_active_scredge(win, screen, x, y);
|
||||
if (actedge == NULL) {
|
||||
return 0;
|
||||
}
|
||||
@@ -1586,20 +1590,20 @@ static int area_move_init(bContext *C, wmOperator *op)
|
||||
|
||||
screen_geom_select_connected_edge(win, actedge);
|
||||
/* now all vertices with 'flag == 1' are the ones that can be moved. Move this to editflag */
|
||||
ED_screen_verts_iter(win, sc, v1)
|
||||
ED_screen_verts_iter(win, screen, v1)
|
||||
{
|
||||
v1->editflag = v1->flag;
|
||||
}
|
||||
|
||||
bool use_bigger_smaller_snap = false;
|
||||
area_move_set_limits(win, sc, md->dir, &md->bigger, &md->smaller, &use_bigger_smaller_snap);
|
||||
area_move_set_limits(win, screen, md->dir, &md->bigger, &md->smaller, &use_bigger_smaller_snap);
|
||||
|
||||
md->snap_type = use_bigger_smaller_snap ? SNAP_BIGGER_SMALLER_ONLY : SNAP_AREAGRID;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int area_snap_calc_location(const bScreen *sc,
|
||||
static int area_snap_calc_location(const bScreen *screen,
|
||||
const enum AreaMoveSnapType snap_type,
|
||||
const int delta,
|
||||
const int origval,
|
||||
@@ -1657,13 +1661,13 @@ static int area_snap_calc_location(const bScreen *sc,
|
||||
}
|
||||
}
|
||||
|
||||
for (const ScrVert *v1 = sc->vertbase.first; v1; v1 = v1->next) {
|
||||
for (const ScrVert *v1 = screen->vertbase.first; v1; v1 = v1->next) {
|
||||
if (!v1->editflag) {
|
||||
continue;
|
||||
}
|
||||
const int v_loc = (&v1->vec.x)[!axis];
|
||||
|
||||
for (const ScrVert *v2 = sc->vertbase.first; v2; v2 = v2->next) {
|
||||
for (const ScrVert *v2 = screen->vertbase.first; v2; v2 = v2->next) {
|
||||
if (v2->editflag) {
|
||||
continue;
|
||||
}
|
||||
@@ -1702,7 +1706,7 @@ static void area_move_apply_do(const bContext *C,
|
||||
const enum AreaMoveSnapType snap_type)
|
||||
{
|
||||
wmWindow *win = CTX_wm_window(C);
|
||||
bScreen *sc = CTX_wm_screen(C);
|
||||
bScreen *screen = CTX_wm_screen(C);
|
||||
short final_loc = -1;
|
||||
bool doredraw = false;
|
||||
|
||||
@@ -1714,13 +1718,13 @@ static void area_move_apply_do(const bContext *C,
|
||||
final_loc = origval + delta;
|
||||
}
|
||||
else {
|
||||
final_loc = area_snap_calc_location(sc, snap_type, delta, origval, dir, bigger, smaller);
|
||||
final_loc = area_snap_calc_location(screen, snap_type, delta, origval, dir, bigger, smaller);
|
||||
}
|
||||
|
||||
BLI_assert(final_loc != -1);
|
||||
short axis = (dir == 'v') ? 0 : 1;
|
||||
|
||||
ED_screen_verts_iter(win, sc, v1)
|
||||
ED_screen_verts_iter(win, screen, v1)
|
||||
{
|
||||
if (v1->editflag) {
|
||||
short oldval = (&v1->vec.x)[axis];
|
||||
@@ -1737,7 +1741,7 @@ static void area_move_apply_do(const bContext *C,
|
||||
/* only redraw if we actually moved a screen vert, for AREAGRID */
|
||||
if (doredraw) {
|
||||
bool redraw_all = false;
|
||||
ED_screen_areas_iter(win, sc, area)
|
||||
ED_screen_areas_iter(win, screen, area)
|
||||
{
|
||||
if (area->v1->editflag || area->v2->editflag || area->v3->editflag || area->v4->editflag) {
|
||||
if (ED_area_is_global(area)) {
|
||||
@@ -1750,14 +1754,14 @@ static void area_move_apply_do(const bContext *C,
|
||||
area->global->cur_fixed_height = area->global->size_max;
|
||||
}
|
||||
|
||||
sc->do_refresh = true;
|
||||
screen->do_refresh = true;
|
||||
redraw_all = true;
|
||||
}
|
||||
ED_area_tag_redraw(area);
|
||||
}
|
||||
}
|
||||
if (redraw_all) {
|
||||
ED_screen_areas_iter(win, sc, area)
|
||||
ED_screen_areas_iter(win, screen, area)
|
||||
{
|
||||
ED_area_tag_redraw(area);
|
||||
}
|
||||
@@ -1767,7 +1771,7 @@ static void area_move_apply_do(const bContext *C,
|
||||
|
||||
WM_event_add_notifier(C, NC_SCREEN | NA_EDITED, NULL); /* redraw everything */
|
||||
/* Update preview thumbnail */
|
||||
BKE_icon_changed(sc->id.icon_id);
|
||||
BKE_icon_changed(screen->id.icon_id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2055,7 +2059,7 @@ static ScrEdge *area_findsharededge(bScreen *screen, ScrArea *area, ScrArea *sb)
|
||||
static int area_split_apply(bContext *C, wmOperator *op)
|
||||
{
|
||||
const wmWindow *win = CTX_wm_window(C);
|
||||
bScreen *sc = CTX_wm_screen(C);
|
||||
bScreen *screen = CTX_wm_screen(C);
|
||||
sAreaSplitData *sd = (sAreaSplitData *)op->customdata;
|
||||
float fac;
|
||||
int dir;
|
||||
@@ -2063,13 +2067,13 @@ static int area_split_apply(bContext *C, wmOperator *op)
|
||||
fac = RNA_float_get(op->ptr, "factor");
|
||||
dir = RNA_enum_get(op->ptr, "direction");
|
||||
|
||||
sd->narea = area_split(win, sc, sd->sarea, dir, fac, 0); /* 0 = no merge */
|
||||
sd->narea = area_split(win, screen, sd->sarea, dir, fac, 0); /* 0 = no merge */
|
||||
|
||||
if (sd->narea) {
|
||||
sd->nedge = area_findsharededge(sc, sd->sarea, sd->narea);
|
||||
sd->nedge = area_findsharededge(screen, sd->sarea, sd->narea);
|
||||
|
||||
/* select newly created edge, prepare for moving edge */
|
||||
ED_screen_verts_iter(win, sc, sv)
|
||||
ED_screen_verts_iter(win, screen, sv)
|
||||
{
|
||||
sv->editflag = 0;
|
||||
}
|
||||
@@ -2089,7 +2093,7 @@ static int area_split_apply(bContext *C, wmOperator *op)
|
||||
|
||||
WM_event_add_notifier(C, NC_SCREEN | NA_EDITED, NULL);
|
||||
/* Update preview thumbnail */
|
||||
BKE_icon_changed(sc->id.icon_id);
|
||||
BKE_icon_changed(screen->id.icon_id);
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -2137,12 +2141,12 @@ static void area_split_preview_update_cursor(bContext *C, wmOperator *op)
|
||||
static int area_split_invoke(bContext *C, wmOperator *op, const wmEvent *event)
|
||||
{
|
||||
wmWindow *win = CTX_wm_window(C);
|
||||
bScreen *sc = CTX_wm_screen(C);
|
||||
bScreen *screen = CTX_wm_screen(C);
|
||||
sAreaSplitData *sd;
|
||||
int dir;
|
||||
|
||||
/* no full window splitting allowed */
|
||||
BLI_assert(sc->state == SCREENNORMAL);
|
||||
BLI_assert(screen->state == SCREENNORMAL);
|
||||
|
||||
PropertyRNA *prop_dir = RNA_struct_find_property(op->ptr, "direction");
|
||||
PropertyRNA *prop_factor = RNA_struct_find_property(op->ptr, "factor");
|
||||
@@ -2232,7 +2236,7 @@ static int area_split_invoke(bContext *C, wmOperator *op, const wmEvent *event)
|
||||
WM_window_rect_calc(win, &window_rect);
|
||||
|
||||
actedge = screen_geom_area_map_find_active_scredge(
|
||||
AREAMAP_FROM_SCREEN(sc), &window_rect, event_co[0], event_co[1]);
|
||||
AREAMAP_FROM_SCREEN(screen), &window_rect, event_co[0], event_co[1]);
|
||||
if (actedge == NULL) {
|
||||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
@@ -2253,7 +2257,7 @@ static int area_split_invoke(bContext *C, wmOperator *op, const wmEvent *event)
|
||||
|
||||
/* do the split */
|
||||
if (area_split_apply(C, op)) {
|
||||
area_move_set_limits(win, sc, dir, &sd->bigger, &sd->smaller, NULL);
|
||||
area_move_set_limits(win, screen, dir, &sd->bigger, &sd->smaller, NULL);
|
||||
|
||||
/* add temp handler for edge move or cancel */
|
||||
G.moving |= G_TRANSFORM_WM;
|
||||
@@ -2794,7 +2798,7 @@ static void SCREEN_OT_region_scale(wmOperatorType *ot)
|
||||
|
||||
static void areas_do_frame_follow(bContext *C, bool middle)
|
||||
{
|
||||
bScreen *scr = CTX_wm_screen(C);
|
||||
bScreen *screen_ctx = CTX_wm_screen(C);
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
wmWindowManager *wm = CTX_wm_manager(C);
|
||||
for (wmWindow *window = wm->windows.first; window; window = window->next) {
|
||||
@@ -2803,7 +2807,7 @@ static void areas_do_frame_follow(bContext *C, bool middle)
|
||||
for (ScrArea *area = screen->areabase.first; area; area = area->next) {
|
||||
for (ARegion *region = area->regionbase.first; region; region = region->next) {
|
||||
/* do follow here if editor type supports it */
|
||||
if ((scr->redraws_flag & TIME_FOLLOW)) {
|
||||
if ((screen_ctx->redraws_flag & TIME_FOLLOW)) {
|
||||
if ((region->regiontype == RGN_TYPE_WINDOW &&
|
||||
ELEM(area->spacetype, SPACE_SEQ, SPACE_GRAPH, SPACE_ACTION, SPACE_NLA)) ||
|
||||
(area->spacetype == SPACE_CLIP && region->regiontype == RGN_TYPE_PREVIEW)) {
|
||||
@@ -3381,7 +3385,7 @@ static void area_join_cancel(bContext *C, wmOperator *op)
|
||||
/* modal callback while selecting area (space) that will be removed */
|
||||
static int area_join_modal(bContext *C, wmOperator *op, const wmEvent *event)
|
||||
{
|
||||
bScreen *sc = CTX_wm_screen(C);
|
||||
bScreen *screen = CTX_wm_screen(C);
|
||||
wmWindow *win = CTX_wm_window(C);
|
||||
sAreaJoinData *jd;
|
||||
|
||||
@@ -3396,7 +3400,7 @@ static int area_join_modal(bContext *C, wmOperator *op, const wmEvent *event)
|
||||
switch (event->type) {
|
||||
|
||||
case MOUSEMOVE: {
|
||||
ScrArea *area = BKE_screen_find_area_xy(sc, SPACE_TYPE_ANY, event->x, event->y);
|
||||
ScrArea *area = BKE_screen_find_area_xy(screen, SPACE_TYPE_ANY, event->x, event->y);
|
||||
int dir = -1;
|
||||
|
||||
if (area) {
|
||||
@@ -5037,9 +5041,9 @@ static void SCREEN_OT_new(wmOperatorType *ot)
|
||||
|
||||
static int screen_delete_exec(bContext *C, wmOperator *UNUSED(op))
|
||||
{
|
||||
bScreen *sc = CTX_wm_screen(C);
|
||||
bScreen *screen = CTX_wm_screen(C);
|
||||
WorkSpace *workspace = CTX_wm_workspace(C);
|
||||
WorkSpaceLayout *layout = BKE_workspace_layout_find(workspace, sc);
|
||||
WorkSpaceLayout *layout = BKE_workspace_layout_find(workspace, screen);
|
||||
|
||||
WM_event_add_notifier(C, NC_SCREEN | ND_LAYOUTDELETE, layout);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user