reduce flicker when dragging the titlebar

svn path=/trunk/kdebase/kwin/; revision=46450
This commit is contained in:
Boris Wedl 2000-04-12 17:00:56 +00:00
parent 6f2db8d4c7
commit 06dc47b2da
2 changed files with 18 additions and 11 deletions

View file

@ -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()

View file

@ -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);}