reduce flicker when dragging the titlebar
svn path=/trunk/kdebase/kwin/; revision=46450
This commit is contained in:
parent
6f2db8d4c7
commit
06dc47b2da
2 changed files with 18 additions and 11 deletions
|
@ -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()
|
||||
|
|
|
@ -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);}
|
||||
|
|
Loading…
Reference in a new issue