Add surface global context

It is guaranteed that the `ws_cursor_get()` always returns the expected thing?