From 5f356d8628ba12aa376d5d9e5c04dc577efc0b22 Mon Sep 17 00:00:00 2001 From: "Daniel M. Duley" Date: Tue, 6 Feb 2001 22:16:17 +0000 Subject: [PATCH] Improved titlebar buffering. Are these commits going into the KDE2.1final, or do I need to do something special? svn path=/trunk/kdebase/kwin/; revision=81613 --- clients/kwmtheme/kwmthemeclient.cpp | 17 +++++++++++++++-- clients/kwmtheme/kwmthemeclient.h | 1 + 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/clients/kwmtheme/kwmthemeclient.cpp b/clients/kwmtheme/kwmthemeclient.cpp index 1035bfe754..845d50367b 100644 --- a/clients/kwmtheme/kwmthemeclient.cpp +++ b/clients/kwmtheme/kwmthemeclient.cpp @@ -290,9 +290,18 @@ KWMThemeClient::KWMThemeClient( Workspace *ws, WId w, QWidget *parent, setBackgroundMode(NoBackground); } -void KWMThemeClient::drawTitle(QPainter &p) +void KWMThemeClient::drawTitle(QPainter &dest) { - QRect r = titlebar->geometry(); + QRect titleRect = titlebar->geometry(); + QRect r(0, 0, titleRect.width(), titleRect.height()); + QPixmap buffer; + + if(buffer.width() == r.width()) + return; + + buffer.resize(r.size()); + QPainter p; + p.begin(&buffer); if(titleSunken){ qDrawShadeRect(&p, r, options->colorGroup(Options::Frame, isActive()), @@ -324,8 +333,12 @@ void KWMThemeClient::drawTitle(QPainter &p) r.setLeft(r.left()+5); r.setRight(r.right()-5); p.drawText(r, titleAlign, caption()); + p.end(); + + dest.drawPixmap(titleRect.x(), titleRect.y(), buffer); } + void KWMThemeClient::resizeEvent( QResizeEvent* e) { Client::resizeEvent( e ); diff --git a/clients/kwmtheme/kwmthemeclient.h b/clients/kwmtheme/kwmthemeclient.h index f13d070e59..a80ab8a500 100644 --- a/clients/kwmtheme/kwmthemeclient.h +++ b/clients/kwmtheme/kwmthemeclient.h @@ -40,6 +40,7 @@ protected: protected slots: void slotReset(); private: + QPixmap buffer; KPixmap *aGradient, *iGradient; MyButton *maxBtn, *stickyBtn; QSpacerItem *titlebar;