Each dpi value stores its own set of font sizes, so while dragging the dpi value would collect many sizes and never free. Also change how BLF_cache_clear works, it was freeing memory but not the OpenGL textures. Now just free all the cache and GL textures and let drawing allocate them again as needed.