void HandServer::Release(SDLKey k) { Vertex* lm = _Screen->Vertex::get(LAYERMANAGER); // Gets the device Vertex* all_dev = get("Devices"); Device* dev; uint i = 0; while((dev=dynamic_cast<Device*>(all_dev->get(++i))) != NULL) { if(dev->Release(k)) { if(DeleteDeviceIfEmpty && dev->IsUnused() && (lm->size() > 1)) { // Exit last layer delete(lm->get(lm->size())); } return; } } }