Backport from oxygen: rev 984209
Prevent shadows from being drawn when windows are maximized which causes some visual problems on multi monitor settings. Also clean up some code duplication. svn path=/trunk/KDE/kdebase/workspace/; revision=984214
This commit is contained in:
parent
c054eac3f7
commit
1a72726875
2 changed files with 10 additions and 8 deletions
|
@ -127,7 +127,7 @@ bool OxygenClient::decorationBehaviour(DecorationBehaviour behaviour) const
|
|||
|
||||
int OxygenClient::layoutMetric(LayoutMetric lm, bool respectWindowState, const KCommonDecorationButton *btn) const
|
||||
{
|
||||
bool maximized = maximizeMode()==MaximizeFull && !options()->moveResizeMaximizedWindows();
|
||||
bool maximized = isMaximized();
|
||||
int frameWidth = OxygenFactory::borderSize();
|
||||
|
||||
switch (lm) {
|
||||
|
@ -289,6 +289,11 @@ QColor OxygenClient::titlebarTextColor(const QPalette &palette)
|
|||
}
|
||||
}
|
||||
|
||||
bool OxygenClient::isMaximized() const
|
||||
{
|
||||
return maximizeMode()==MaximizeFull && !options()->moveResizeMaximizedWindows();
|
||||
}
|
||||
|
||||
void OxygenClient::paintEvent(QPaintEvent *e)
|
||||
{
|
||||
Q_UNUSED(e)
|
||||
|
@ -332,7 +337,7 @@ void OxygenClient::paintEvent(QPaintEvent *e)
|
|||
|
||||
// draw shadow
|
||||
|
||||
if (compositingActive())
|
||||
if (compositingActive() && !isMaximized())
|
||||
shadowTiles(color,KDecoration::options()->color(ColorTitleBar),
|
||||
SHADOW_WIDTH, isActive())->render( frame.adjusted(-SHADOW_WIDTH+4,
|
||||
-SHADOW_WIDTH+4, SHADOW_WIDTH-4, SHADOW_WIDTH-4),
|
||||
|
@ -414,9 +419,7 @@ void OxygenClient::paintEvent(QPaintEvent *e)
|
|||
}
|
||||
|
||||
// Draw shadows of the frame
|
||||
bool maximized = maximizeMode()==MaximizeFull && !options()->moveResizeMaximizedWindows();
|
||||
|
||||
if(maximized)
|
||||
if(isMaximized())
|
||||
return;
|
||||
|
||||
helper_.drawFloatFrame(&painter, frame, color, !compositingActive(), isActive(),
|
||||
|
@ -469,9 +472,7 @@ void OxygenClient::drawStripes(QPainter *p, QPalette &palette, const int start,
|
|||
|
||||
void OxygenClient::updateWindowShape()
|
||||
{
|
||||
bool maximized = maximizeMode()==MaximizeFull && !options()->moveResizeMaximizedWindows();
|
||||
|
||||
if(maximized || compositingActive()) {
|
||||
if(isMaximized() || compositingActive()) {
|
||||
clearMask();
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -67,6 +67,7 @@ private:
|
|||
void paintEvent(QPaintEvent *e);
|
||||
void drawStripes(QPainter *p, QPalette &palette, const int start, const int end, const int topMargin);
|
||||
QColor titlebarTextColor(const QPalette &palette);
|
||||
bool isMaximized() const;
|
||||
bool colorCacheInvalid_;
|
||||
QColor cachedTitlebarTextColor_;
|
||||
|
||||
|
|
Loading…
Reference in a new issue