Well, it only comes CGraphicContext::SetVideoResolution. However, then we're down an even deeper rabbit hole because that function is also called for a number of purposes:

 * Updating the fullscreen state and internal size of the window
 * Telling the underlying window system to resize the window
 * Updating the OpenGL viewport
 * Updating the mouse viewport etc

The place where it all falls apart, at least for X11 is that you can only update the OpenGL viewport after the backing window has changed size, and you'll only know that this has happened once you get an event from the server saying that this is so. Hence the reason why we're calling SetVideoResolution indirectly from the various "resize-done" handlers.

Except that we should only really be calling a function that does the last two things, not the first two.

I wonder if its possible to refactor out that bit of the code to just call in that case.

Probably not an item for this PR though.