[Libreoffice] [REVIEW] fix for fdo#36690
Michael Meeks
michael.meeks at novell.com
Fri May 20 02:02:04 PDT 2011
Hi Kohei,
On Fri, 2011-05-20 at 00:45 -0400, Kohei Yoshida wrote:
> https://bugs.freedesktop.org/show_bug.cgi?id=36690
>
> and I would like to push this to the -3-4 branch and possibly to the
> -3-4-0 branch as well. The patch is against vcl.
..
> Calc races during print preview when the sheet contains buttons with
> colors. The reason is as follows:
Great description.
> When the PushButton::Draw changes the style setting, I'm pretty sure it
> never intends to broadcast the change to anyone, yet it does because
> SetSettings is virtual.
right.
> So what my patch does is to allow it to simply
> change the style setting without broadcasting it, and that's enough to
> end this infinite re-paint cycle.
Weelll ... it seems that (for all its ugliness) the more common way of
doing this inside button.cxx's draw code (cf. ImplDrawPushButtonFrame)
seems to be this:
diff --git a/vcl/source/control/button.cxx b/vcl/source/control/button.cxx
index c77d14a..6932cdb 100644
--- a/vcl/source/control/button.cxx
+++ b/vcl/source/control/button.cxx
@@ -1522,7 +1522,7 @@ void PushButton::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize,
else
aStyleSettings.SetFaceColor( GetSettings().GetStyleSettings().GetFaceColor() );
aSettings.SetStyleSettings( aStyleSettings );
- pDev->SetSettings( aSettings );
+ pDev->OutputDevice::SetSettings( aSettings );
}
pDev->SetTextFillColor();
I'd feel happier with that personally too, it also seems to fix the
bug.
Thanks !
Michael.
--
michael.meeks at novell.com <><, Pseudo Engineer, itinerant idiot
More information about the LibreOffice
mailing list