Hello, the patch below fixes the redraw problem with findText found by place that was introduced with my textblock optimization. Partial redraws were interfering with scrolling. The findText method is a nice test for this code path! I'm now experimenting with a redraw optimization that covers table based pages too. It's looking promising, but it needs some more work. Cheers, Johannes diff --git a/dw/fltkviewbase.cc b/dw/fltkviewbase.cc --- a/dw/fltkviewbase.cc +++ b/dw/fltkviewbase.cc @@ -85,6 +85,7 @@ void FltkViewBase::draw () } } + drawRegion.clear (); d &= ~DAMAGE_VALUE; } @@ -110,9 +111,12 @@ void FltkViewBase::draw () area.width = rect.w(); area.height = rect.h(); theLayout->expose (this, &area); + + if (! (d & DAMAGE_SCROLL)) { + drawRegion.clear (); + } } - drawRegion.clear (); } void FltkViewBase::drawChildWidgets () { diff --git a/dw/fltkviewport.cc b/dw/fltkviewport.cc --- a/dw/fltkviewport.cc +++ b/dw/fltkviewport.cc @@ -185,6 +185,7 @@ void FltkViewport::draw () int d = damage(); if (d & DAMAGE_SCROLL) { + set_damage (DAMAGE_SCROLL); scrollrect(cr, -scrollDX, -scrollDY, draw_area, this); d &= ~DAMAGE_SCROLL; set_damage (d);