+ // the explanation of wxEVT_PAINT processing hack: for historic reasons
+ // there are 2 ways to process this event in classes deriving from
+ // wxScrolledWindow. The user code may
+ //
+ // 1. override wxScrolledWindow::OnDraw(dc)
+ // 2. define its own OnPaint() handler
+ //
+ // In addition, in wxUniversal wxWindow defines OnPaint() itself and
+ // always processes the draw event, so we can't just try the window
+ // OnPaint() first and call our HandleOnPaint() if it doesn't process it
+ // (the latter would never be called in wxUniversal).
+ //
+ // So the solution is to have a flag telling us whether the user code drew
+ // anything in the window. We set it to true here but reset it to false in
+ // wxScrolledWindow::OnPaint() handler (which wouldn't be called if the
+ // user code defined OnPaint() in the derived class)
+ m_hasDrawnWindow = TRUE;
+