Cleanup: Don't unset region visibility in unrelated WM function

`WM_draw_region_free()` should manage region-draw data, and not change
region state. This should be done by normal region state management
functions. Especially for a flag like `ARegion::visible` which is just
the cached result of the region's visibility evaluation, not the proper
way to actualy manage the region visibility.
This commit is contained in:
Julian Eisel 2023-10-30 12:40:00 +01:00
parent 28a28b9a2c
commit 02fb605f8a
4 changed files with 7 additions and 7 deletions

View File

@ -2182,7 +2182,8 @@ static void area_offscreen_exit(wmWindowManager *wm, wmWindow *win, ScrArea *are
}
WM_event_modal_handler_region_replace(win, region, nullptr);
WM_draw_region_free(region, true);
WM_draw_region_free(region);
region->visible = false;
MEM_SAFE_FREE(region->headerstr);

View File

@ -805,7 +805,9 @@ void ED_region_exit(bContext *C, ARegion *region)
WM_event_remove_handlers(C, &region->handlers);
WM_event_modal_handler_region_replace(win, region, nullptr);
WM_draw_region_free(region, true);
WM_draw_region_free(region);
/* The region is not in a state that it can be visible in anymore. Reinitializing is needed. */
region->visible = false;
MEM_SAFE_FREE(region->headerstr);

View File

@ -186,7 +186,7 @@ void ED_view3d_stop_render_preview(wmWindowManager *wm, ARegion *region)
}
/* A bit overkill but this make sure the viewport is reset completely. (fclem) */
WM_draw_region_free(region, false);
WM_draw_region_free(region);
}
void ED_view3d_shade_update(Main *bmain, View3D *v3d, ScrArea *area)

View File

@ -1591,12 +1591,9 @@ void wm_draw_region_clear(wmWindow *win, ARegion * /*region*/)
screen->do_draw = true;
}
void WM_draw_region_free(ARegion *region, bool hide)
void WM_draw_region_free(ARegion *region)
{
wm_draw_region_buffer_free(region);
if (hide) {
region->visible = 0;
}
}
void wm_draw_region_test(bContext *C, ScrArea *area, ARegion *region)