PLUGIN_API void Berkelium_destroy() { --refCount; if(refCount == 0) { cerr << "Last reference to Berkelium destroyed: destroying the library" << endl; // Destroy the windows that still exist // Note: we update Berkelium after each destroy to ensure no messages are left in the message loop for(WindowMap::iterator it = windows.begin(); it != windows.end(); ++it) { delete it->second; Berkelium::update(); } windows.clear(); // Close the berkelium backend Berkelium::destroy(); cerr << "... done destroying Berkelium" << endl; // Close the log file fclose(stderr); } }
void WindowMonitor::RunWindowMaintenance() { for (WindowMap::iterator iter = sWindowData.begin(); iter != sWindowData.end();) { if (!IsTaskbarWindow(iter->first)) { iter = sWindowData.erase(iter); continue; } if (iter->second.updateDuringMaintenance) { iter->second.updateDuringMaintenance = false; UpdateWindowData(iter->first); } ++iter; } }
PLUGIN_API void Berkelium_destroy() { --refCount; if(refCount == 0) { // Destroy the windows that still exist for(WindowMap::iterator it = windows.begin(); it != windows.end(); ++it) delete it->second; windows.clear(); // Close the berkelium backend Berkelium::destroy(); // Close the log file fclose(stderr); } }