From 8ea45699503f23339525c17beeb9a7a50fbb2653 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Mon, 6 Nov 2006 01:45:03 +0000 Subject: [PATCH] update window before changing the scrolling position and really scrolling it to avoid redraw problems in wxUniv git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43103 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/generic/scrlwing.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/generic/scrlwing.cpp b/src/generic/scrlwing.cpp index be46007774..92ebe1aedb 100644 --- a/src/generic/scrlwing.cpp +++ b/src/generic/scrlwing.cpp @@ -462,6 +462,11 @@ void wxScrollHelper::HandleOnScroll(wxScrollWinEvent& event) return; } + // flush all pending repaints before we change m_{x,y}ScrollPosition, as + // otherwise invalidated area could be updated incorrectly later when + // ScrollWindow() makes sure they're repainted before scrolling them + m_targetWindow->Update(); + int orient = event.GetOrientation(); if (orient == wxHORIZONTAL) { @@ -894,6 +899,11 @@ void wxScrollHelper::Scroll( int x_pos, int y_pos ) int w = 0, h = 0; GetTargetSize(&w, &h); + // flush all pending repaints before we change m_{x,y}ScrollPosition, as + // otherwise invalidated area could be updated incorrectly later when + // ScrollWindow() makes sure they're repainted before scrolling them + m_targetWindow->Update(); + if ((x_pos != -1) && (m_xScrollPixelsPerLine)) { int old_x = m_xScrollPosition; -- 2.45.2