fdo#47907: fix flickering scrolling in Basic IDE
Noel Power
nopower at suse.com
Thu Aug 2 09:04:45 PDT 2012
On 02/08/12 15:31, Noel Power wrote:
> Hi János,
>
> On 31/07/12 12:34, János Uray wrote:
>> Again? Oh, yes.
>> Now here it is.
>>
>> On Tue, Jul 31, 2012 at 11:10 AM, Noel Power <nopower at suse.com
>> <mailto:nopower at suse.com>> wrote:
>>
>> Hi János
>> you forgot to attach the patch :-)
>>
>> On 30/07/12 19:04, János Uray wrote:
>>> This patch solves this bug:
>>> https://bugs.freedesktop.org/show_bug.cgi?id=47907
>>>
>>> The text was flickering because Window::Invalidate() clears the
>>> client area by default. To prevent this, I've added an
>>> INVALIDATE_NOERASE parameter to Invalidate() calls.
>>> On the other hand, the background still needed to be erased
>>> outside the text: the indentation space and the rest of the line.
>>
> seems to work better :-), imho still is not as smooth as 3.4, I would
> love to know *why* we get this behaviour now in >=3.5, is something
> triggering Resize() more often now ( and why indeed is Resize even
> called when scrolling ). Additionally I am a but nervous about changes
> to the TextEngine ( a piece of code I have no familiarity with at all
> ). Saying that the change you made seems quite small ( despite the
> confusing diff due to the whitespace changes ) I suppose it is the
> last part of the patch that is really necessary. But still it just
> feels wrong that we need to tweak the TextEngine and I wonder are we
> correcting a side affect rather than fixing the root cause
well it seems that
--- a/basctl/source/basicide/baside2b.cxx
+++ b/basctl/source/basicide/baside2b.cxx
@@ -682,7 +682,6 @@ void EditorWindow::Notify( SfxBroadcaster& /*rBC*/,
const SfxHint& rHint )
( 0,
pModulWindow->GetBreakPointWindow().GetCurYOffset() -
pEditView->GetStartDocPos().Y() );
pModulWindow->GetLineNumberWindow().DoScroll
( 0,
pModulWindow->GetLineNumberWindow().GetCurYOffset() -
pEditView->GetStartDocPos().Y() );
- pModulWindow->Invalidate();
}
else if( rTextHint.GetId() == TEXT_HINT_TEXTHEIGHTCHANGED )
{
solves the problem, I see no side affects, however since you have proved
you are quite adept and talented at handling complicated drawing bits,
notice if you scroll the window ( by dragging the scroll bar ) if you
have the linenumbers enabled they flash and flicker and even disappear
while scrolling, it would be great to get than nice and smooth
Noel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/libreoffice/attachments/20120802/cf37cd24/attachment.html>
More information about the LibreOffice
mailing list