wlr-seat bug: dont set focus surface to null then clear focus
Created by: acrisci
The focus surface for the state should get cleared in the *_clear_focus()
functions for the input, not here. If you clear it here, the focus surface won't get cleaned up properly and will lead to crashes.
You can reproduce a crash in wl-shell by closing a transient window (such as qgit about dialog).
The dialog takes a different code path to destroy itself by destroying the resource before using the surface destroy interface which is why we only get the crash in that case.