Centered placement in slots.
svn path=/branches/work/kwin_composite/; revision=654291
This commit is contained in:
parent
b30180ca26
commit
795de6c6d6
1 changed files with 15 additions and 1 deletions
|
@ -529,8 +529,22 @@ void PresentWindowsEffect::calculateWindowTransformationsClosest(EffectWindowLis
|
||||||
area.y() + ((*it).slot / columns ) * slotheight,
|
area.y() + ((*it).slot / columns ) * slotheight,
|
||||||
slotwidth, slotheight );
|
slotwidth, slotheight );
|
||||||
geom.adjust( 10, 10, -10, -10 ); // borders
|
geom.adjust( 10, 10, -10, -10 ); // borders
|
||||||
|
float scale;
|
||||||
|
EffectWindow* w = it.key();
|
||||||
|
if( geom.width() / float( w->width()) < geom.height() / float( w->height()))
|
||||||
|
{ // center vertically
|
||||||
|
scale = geom.width() / float( w->width());
|
||||||
|
geom.moveTop( geom.top() + ( geom.height() - int( w->height() * scale )) / 2 );
|
||||||
|
geom.setHeight( int( w->height() * scale ));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{ // center horizontally
|
||||||
|
scale = geom.height() / float( w->height());
|
||||||
|
geom.moveLeft( geom.left() + ( geom.width() - int( w->width() * scale )) / 2 );
|
||||||
|
geom.setWidth( int( w->width() * scale ));
|
||||||
|
}
|
||||||
(*it).area = geom;
|
(*it).area = geom;
|
||||||
(*it).scale = qMin( geom.width() / float( it.key()->width()), geom.height() / float( it.key()->height()));
|
(*it).scale = scale;
|
||||||
(*it).hover = 0;
|
(*it).hover = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue