fixed button rendering when compositing is disabled.

This commit is contained in:
Hugo Pereira Da Costa 2011-06-28 01:09:22 +02:00
parent 6ad6c7da8b
commit 6e0733e0de
2 changed files with 32 additions and 3 deletions

View file

@ -172,9 +172,35 @@ namespace Oxygen
if( _client.hideTitleBar() ) return;
QPainter painter(this);
painter.setClipRect(this->rect().intersected( event->rect() ) );
painter.setRenderHints(QPainter::Antialiasing);
if( _client.compositingActive() )
{
QPainter painter( this );
painter.setClipRect( event->rect() );
paint( painter );
} else {
QPixmap pixmap( size() );
{
QPainter painter( &pixmap );
painter.setRenderHints(QPainter::Antialiasing);
parentWidget()->render( &painter, QPoint(), geometry(), QWidget::DrawWindowBackground );
paint( painter );
}
QPainter painter(this);
painter.setClipRect( event->rect() );
painter.drawPixmap( QPoint(), pixmap );
}
}
//___________________________________________________
void Button::paint( QPainter& painter )
{
QPalette palette( this->palette() );
palette.setCurrentColorGroup( isActive() ? QPalette::Active : QPalette::Inactive);

View file

@ -109,6 +109,9 @@ namespace Oxygen
//! paint
void paintEvent(QPaintEvent* );
//! paint
void paint(QPainter& );
//! draw icon
void drawIcon(QPainter*);