[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