public void goWindow() { isInFullScreenMode = false; // use OrderOut here instead of Close or nasty things will happen with Garbage Collection and a double free fullScreenWindow.OrderOut(this); fullScreenView.DeAllocate(); fullScreenWindow.Dispose(); fullScreenWindow = null; // Switch to the non-fullscreen context openGLView.OpenGLContext.MakeCurrentContext(); if (!isAnimating) { // Mark the view as needing drawing // The animation has advanced while we were in full-screen mode, so its current contents are stale openGLView.NeedsDisplay = true; } else { // continue playing the animation openGLView.StartAnimation(); } }