[PATCH]Mouse-over effects don't work properly in QToolBox

REGAT-BARREL Aurelien arbvtk at yahoo.fr
Fri Dec 17 01:34:24 CET 2004


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 votre Yahoo! Mail
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/kde-cygwin/attachments/20041217/3cbd41d1/attachment.html


More information about the kde-cygwin mailing list