<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<TITLE>Message</TITLE>
<META content=1 name=qrichtext>
<STYLE type=text/css>
p, li { white-space: pre-wrap; }
</STYLE>
<META content="MSHTML 6.00.6000.16544" name=GENERATOR></HEAD>
<BODY
style="FONT-WEIGHT: 400; FONT-SIZE: 10pt; FONT-STYLE: normal; FONT-FAMILY: 'Liberation Sans'">
<BLOCKQUOTE dir=ltr
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<P
style="MARGIN: 0px; TEXT-INDENT: 0px; -qt-block-indent: 0; -qt-user-state: 0">>
> The scrollbar invalidates indeed the whole region, even if it is
located</P>
<P
style="MARGIN: 0px; TEXT-INDENT: 0px; -qt-block-indent: 0; -qt-user-state: 0">>
> outside the customcontrol (and thus invisible). If nobody else has</P>
<P
style="MARGIN: 0px; TEXT-INDENT: 0px; -qt-block-indent: 0; -qt-user-state: 0">>
> another idea I would suggest to create a bug report.</P>
<P
style="MARGIN: 0px; TEXT-INDENT: 0px; -qt-block-indent: 0; -qt-user-state: 0">>
> </P>
<P
style="MARGIN: 0px; TEXT-INDENT: 0px; -qt-block-indent: 0; -qt-user-state: 0">>
> In the mean time, a workaround is to parent the scrollbox to the
parent</P>
<P
style="MARGIN: 0px; TEXT-INDENT: 0px; -qt-block-indent: 0; -qt-user-state: 0">>
> of TPaintTest. The constructor becomes then</P>
<P
style="MARGIN: 0px; TEXT-INDENT: 0px; -qt-block-indent: 0; -qt-user-state: 0; -qt-paragraph-type: empty"><FONT
face="'Liberation Sans'"></FONT><BR></P>
<P
style="MARGIN: 0px; TEXT-INDENT: 0px; -qt-block-indent: 0; -qt-user-state: 0">OK,
let's stop a bit here.</P>
<P
style="MARGIN: 0px; TEXT-INDENT: 0px; -qt-block-indent: 0; -qt-user-state: 0">It
invalidates some area (parent in this case), and part of that area isn't
exposed (visible) then gtk2 will not paint that part. if it's opposite then
it's an ugly gtk2 bug.<SPAN class=703430717-09072011><FONT
face="'Liberation Sans'"> </FONT></SPAN></P>
<P
style="MARGIN: 0px; TEXT-INDENT: 0px; -qt-block-indent: 0; -qt-user-state: 0"><SPAN
class=703430717-09072011></SPAN> </P></BLOCKQUOTE>
<P dir=ltr
style="MARGIN: 0px; TEXT-INDENT: 0px; -qt-block-indent: 0; -qt-user-state: 0"><SPAN
class=703430717-09072011><FONT face="'Liberation Sans'">No, "it" in " if it is
located outside the customcontrol "is the scrollbar. In Armin's testprogram
change </FONT></SPAN><SPAN class=703430717-09072011> ScrollBar.Align
:= alRight; to ScrollBar.Left:=510, ScrollBar.Height :=500 , so that scrollbar
doesn't cover any area of TPaintTest and isn't shown at all. Even in this
extreme case, the whole TPaintTest area is invalidated.</P></SPAN>
<BLOCKQUOTE dir=ltr
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<P
style="MARGIN: 0px; TEXT-INDENT: 0px; -qt-block-indent: 0; -qt-user-state: 0">Let
me see one more time what's exact problem:</P>
<P
style="MARGIN: 0px; TEXT-INDENT: 0px; -qt-block-indent: 0; -qt-user-state: 0">Any
visible scrollbar in TCustomControl sends update for whole parent (eg. form) ?
IMO, it's fixable under gtk2lcl by intercepting expose event in scrollbar and
reduce area which is marked as exposed, but then another question raises ,
what if I move scrollbar by mouse (and I have already cutted exposed area to
the size of scrollbar) ? My TCustomControl will get an update since it's
viewport is moved ?</P><FONT face="'Liberation Sans'"></FONT></BLOCKQUOTE>
<DIV dir=ltr><SPAN class=703430717-09072011><FONT face="'Liberation Sans'">Why
does a scrollbar invalidate the complete parent area if nothing has changed for
the scrollbar (exposition, location, scroll, mouseclick,...)?
</FONT></SPAN></DIV>
<DIV dir=ltr><SPAN class=703430717-09072011><FONT
face="'Liberation Sans'"></FONT></SPAN> </DIV>
<DIV dir=ltr><SPAN class=703430717-09072011><FONT
face="'Liberation Sans'">Having the area under the scrollbar marked as exposed
isn't an issue, I think. The parent is aware of the scrollbar position and
wouldn't draw underneath anyways. So, no reason to reduce the exposed area.
</FONT></SPAN></DIV>
<DIV dir=ltr><SPAN class=703430717-09072011><FONT
face="'Liberation Sans'"></FONT></SPAN> </DIV>
<DIV dir=ltr><SPAN class=703430717-09072011>Aren't scrollbar mouse
movements signaled by special gtk events? That is where I would expect the
whole parent area to be invalidated. How are windows and gtk solving this?
</SPAN></DIV>
<DIV dir=ltr><SPAN class=703430717-09072011></SPAN> </DIV>
<DIV dir=ltr><SPAN class=703430717-09072011><FONT
face="'Liberation Sans'">Ludo</FONT></SPAN></DIV>
<DIV dir=ltr><FONT face="'Liberation Sans'"></FONT> </DIV></BODY></HTML>