static void menu_managed_remove(WMenu *menu, WRegion *sub) { bool mcf=region_may_control_focus((WRegion*)menu); if(sub!=(WRegion*)menu->submenu) return; menu->submenu=NULL; region_unset_manager(sub, (WRegion*)menu); if(mcf) region_do_set_focus((WRegion*)menu, FALSE); }
static void dock_managed_remove(WDock *dock, WRegion *reg) { WDockApp *dockapp=dock_find_dockapp(dock, reg); if(dockapp==NULL) return; UNLINK_ITEM(dock->dockapps, dockapp, next, prev); free(dockapp); region_unset_manager(reg, (WRegion*)dock); dock_resize(dock); }