diff --git a/clients/b2/b2client.cpp b/clients/b2/b2client.cpp index 555650cb1e..d9daae7c76 100644 --- a/clients/b2/b2client.cpp +++ b/clients/b2/b2client.cpp @@ -282,11 +282,15 @@ B2Client::B2Client( Workspace *ws, WId w, QWidget *parent, else button[BtnMax]->setPixmaps(iMaxPix, iMaxPixDown); } - QColor c = options->colorGroup(Options::TitleBar, isActive()). +// QColor c = options->colorGroup(Options::TitleBar, isActive()). +// color(QColorGroup::Button); + QColor c = options->colorGroup(Options::TitleBar, true). color(QColorGroup::Button); for(i=0; i < 6; ++i) button[i]->setBg(c); - + + setBackgroundColor(c); + positionButtons(); connect(button[BtnMenu], SIGNAL(clicked()), this, SLOT(menuButtonPressed())); connect(button[BtnSticky], SIGNAL(clicked()), this, SLOT(toggleSticky())); @@ -319,13 +323,14 @@ void B2Client::captionChange( const QString &) { positionButtons(); doShape(); - repaint(); + repaint(false); } void B2Client::paintEvent( QPaintEvent* ) { - - QPainter p( this ); + QPixmap pm(size()); + QPainter p; + p.begin( &pm, this ); QRect t = g->cellGeometry(0, 1); t.setRight(button[BtnClose]->x()+17); @@ -382,6 +387,8 @@ void B2Client::paintEvent( QPaintEvent* ) button[BtnSticky]->x()+17); t.setRight(button[BtnIconify]->x()-1); p.drawText(t, AlignLeft | AlignVCenter, caption()); + p.end(); + bitBlt(this, 0, 0, &pm); } #define QCOORDARRLEN(x) sizeof(x)/(sizeof(QCOORD)*2) @@ -414,7 +421,7 @@ void B2Client::showEvent(QShowEvent *ev) { Client::showEvent(ev); doShape(); - repaint(); + repaint(false); } void B2Client::windowWrapperShowEvent( QShowEvent* ) @@ -504,7 +511,7 @@ void B2Client::mouseMoveEvent( QMouseEvent * e) if (bar_x_ofs != old_ofs) { positionButtons(); doShape(); - repaint( 0, 0, width(), t.height(), true ); + repaint( 0, 0, width(), t.height(), false ); } } } else @@ -530,7 +537,7 @@ void B2Client::maximizeChange(bool m) else button[BtnMax]->setPixmaps(iMaxPix, iMaxPixDown); } - button[BtnMax]->repaint(); + button[BtnMax]->repaint(false); } @@ -563,7 +570,7 @@ void B2Client::activeChange(bool on) color(QColorGroup::Button); for(i=0; i < 6; ++i){ button[i]->setBg(c); - button[i]->repaint(); + button[i]->repaint(false); } Client::activeChange(on); } @@ -590,7 +597,7 @@ void B2Client::slotReset() button[i]->setBg(c); button[i]->repaint(false); } - repaint(); + repaint(false); } static void redraw_pixmaps() diff --git a/clients/b2/b2client.h b/clients/b2/b2client.h index 23f167b69d..5c3919c6e7 100644 --- a/clients/b2/b2client.h +++ b/clients/b2/b2client.h @@ -16,7 +16,7 @@ public: B2Button(QWidget *parent=0, const char *name=0) : QButton(parent, name){useMiniIcon = false;} B2Button(KPixmap *pix, KPixmap *pixDown, QWidget *parent=0, const char *name=0); - void setBg(const QColor &c){bg = c;} + void setBg(const QColor &c){bg = c; setBackgroundColor(c);} void setPixmaps(KPixmap *pix, KPixmap *pixDown); void setToggle(){setToggleType(Toggle);} void setActive(bool on){setOn(on);}