@rbernon, I could use some advice on this.
I believe this has been broken since 31b9d0c0cc67b3a03340c33f0e9942bee94c431b--unfortunately I don't have a standalone test app for it, but when display mode emulation is enabled, games like Half-Life 2 display correctly on launch but do not display correctly after the (full)screen resolution is changed in-game.
The fix here does work, but it's maybe not correct to call `make_context_current()` in the `client_surface_update`? I found that in the case of the view position check in `macdrv_client_surface_update`, win32u calls `make_context_current` afterwards. This isn't the case when the DPI has changed though, requiring that explicit `make_context_current` call. Also previously this check was done in `macdrv_swap_buffers` and it could be done now in `macdrv_surface_swap`, but it seems preferable to do things in `update` rather than `swap` if possible.
And !8504 changes all of this, where should it go in that case?