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

Holger Schroeder holger-kde at holgis.net
Fri Dec 17 01:45:52 CET 2004


Hi,

perhaps you can try to look into the history of the file. iirc there were some 
problems with double buffering in the past, and to see anything at all, 
double buffering was disabled under Q_WS_WIN.

while being at it, it could be useful to do a full diff between the cvs 
sources and the official trolltech qt 3.3.x sources. perhaps it will show 
some more differences in the "official" files.

hth, Holger

On Friday 17 December 2004 01:34, REGAT-BARREL Aurelien wrote:
> 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



More information about the kde-cygwin mailing list