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:
parent
28a28b9a2c
commit
02fb605f8a
|
@ -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);
|
||||
|
||||
|
|
|
@ -805,7 +805,9 @@ void ED_region_exit(bContext *C, ARegion *region)
|
|||
|
||||
WM_event_remove_handlers(C, ®ion->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);
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue