DYNFUN void region_activated(WRegion *reg);
DYNFUN void region_inactivated(WRegion *reg);
DYNFUN void region_updategr(WRegion *reg);
-DYNFUN bool region_rqclose(WRegion *reg, bool relocate);
+DYNFUN void region_rqclose(WRegion *reg, bool relocate);
DYNFUN WRegion *region_rqclose_propagate(WRegion *reg, WRegion *maybe_sub);
DYNFUN WRegion *region_current(WRegion *mgr);
DYNFUN void region_notify_rootpos(WRegion *reg, int x, int y);
-DYNFUN bool region_may_destroy(WRegion *reg);
+DYNFUN bool region_may_dispose(WRegion *reg);
DYNFUN WRegion *region_managed_control_focus(WRegion *mgr, WRegion *reg);
DYNFUN void region_managed_remove(WRegion *reg, WRegion *sub);
DYNFUN bool region_managed_prepare_focus(WRegion *reg, WRegion *sub,
int flags, WPrepareFocusResult *res);
DYNFUN void region_managed_notify(WRegion *reg, WRegion *sub, WRegionNotify how);
-DYNFUN bool region_managed_may_destroy(WRegion *mgr, WRegion *reg);
+DYNFUN WRegion *region_managed_disposeroot(WRegion *mgr, WRegion *reg);
DYNFUN bool region_managed_rqorder(WRegion *reg, WRegion *sub,
WRegionOrder order);
extern void region_detach_manager(WRegion *reg);
-extern void region_dispose(WRegion *reg, bool was_mcf);
-extern void region_dispose_(WRegion *reg);
+extern WRegion *region_disposeroot(WRegion *reg);
+
+extern bool region_dispose(WRegion *reg);
+extern bool region_rqdispose(WRegion *reg);
+extern void region_defer_rqdispose(WRegion *reg);
extern WWindow *region_parent(WRegion *reg);
extern WRegion *region_manager(WRegion *reg);
extern WScreen *region_screen_of(WRegion *reg);
extern bool region_same_rootwin(const WRegion *reg1, const WRegion *reg2);
-extern bool region_manager_allows_destroying(WRegion *reg);
-
extern WRegion *region_managed_within(WRegion *reg, WRegion *mgd);
extern void region_set_manager_pseudoactivity(WRegion *reg);