ui: handle window resize

all it does is destroy the current surface and then create a new one with a new size