[PATCH]Mouse-over effects don't work properly in QToolBox
Chris January
chris at atomice.net
Fri Dec 17 10:00:02 CET 2004
Thanks for tracking this down. Looks like you've found the problem.
QSharedDoubleBuffer used to be broken so some widgets were changed so they
didn't use it on Windows. Now it is fixed we should revert to using it.
Cheers,
Chris
Hi,
I spent lots of time tracing execution with the debuger, and I didn't find a
place in *win.cpp code which seems to be responsible. The point of my
interest is now qbutton.cpp, in paintEvent function (line 880) :
/*!
Handles paint events for buttons. Small and typically complex
buttons are painted double-buffered to reduce flicker. The
actually drawing is done in the virtual functions drawButton() and
drawButtonLabel().
\sa drawButton(), drawButtonLabel()
*/
void QButton::paintEvent( QPaintEvent *)
{
#ifdef Q_WS_WIN
QPainter p( this );
drawButton (&p);
#else
QSharedDoubleBuffer buffer( this );
drawButton( buffer.painter() );
#endif
}
I tried to change the #ifdef in order to use the double buffering as the
comments suggest, and... it works! In fact, clearing the QPainter is
missing, the following code works too:
#ifdef Q_WS_WIN
QPainter p( this );
p.eraseRect( this->rect() ); <- added
drawButton (&p);
#else
So I looked in qbutton.cpp from qt-x11-free-3.3.3 and found this:
void QButton::paintEvent( QPaintEvent *)
{
QSharedDoubleBuffer buffer( this );
drawButton( buffer.painter() );
}
So I am wondering where does this #ifdef Q_WS_WIN comes from ? What do you
think about using the double buffer which is what is used in last Qt X11
release ?
Regards.
Aurelien REGAT-BARREL
_____
Découvrez le nouveau Yahoo! Mail : 250 Mo d'espace de stockage pour vos
mails !
Créez
<http://fr.rd.yahoo.com/mail/taglines/*http://fr.rd.yahoo.com/evt=25917/*htt
p://fr.rd.yahoo.com/mail_fr/mail_campaigns/splash/taglines_250/default/*http
://fr.promotions.yahoo.com/mail/creer28.html> votre Yahoo! Mail
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/kde-cygwin/attachments/20041217/15025bfd/attachment.html
More information about the kde-cygwin
mailing list