Git commit e9919695e57612055acfc685707210c00a42ce00 by Thomas L=C3=BCbking. Committed on 05/06/2014 at 18:16. Pushed by luebking into branch 'KDE/4.11'. make trackmouse FX account paintdata scale/trans REVIEW: 118537 BUG: 333012 FIXED-IN: 4.11.12 M +7 -3 kwin/effects/trackmouse/trackmouse.cpp http://commits.kde.org/kde-workspace/e9919695e57612055acfc685707210c00a42ce= 00 diff --git a/kwin/effects/trackmouse/trackmouse.cpp b/kwin/effects/trackmou= se/trackmouse.cpp index e0dc90b..b841b72 100644 --- a/kwin/effects/trackmouse/trackmouse.cpp +++ b/kwin/effects/trackmouse/trackmouse.cpp @@ -135,10 +135,12 @@ void TrackMouseEffect::paintScreen(int mask, QRegion = region, ScreenPaintData& da glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); QMatrix4x4 matrix(modelview); const QPointF p =3D m_lastRect[0].topLeft() + QPoint(m_lastRect[0]= .width()/2.0, m_lastRect[0].height()/2.0); + const float x =3D p.x()*data.xScale() + data.xTranslation(); + const float y =3D p.y()*data.yScale() + data.yTranslation(); for (int i =3D 0; i < 2; ++i) { - matrix.translate(p.x(), p.y(), 0.0); + matrix.translate(x, y, 0.0); matrix.rotate(i ? -2*m_angle : m_angle, 0, 0, 1.0); - matrix.translate(-p.x(), -p.y(), 0.0); + matrix.translate(-x, -y, 0.0); if (shader) { shader->setUniform(GLShader::ModelViewMatrix, matrix); shader->setUniform(GLShader::Saturation, 1.0); @@ -177,7 +179,9 @@ void TrackMouseEffect::paintScreen(int mask, QRegion re= gion, ScreenPaintData& da const QRect &rect =3D m_lastRect[i]; xcb_render_composite(connection(), XCB_RENDER_PICT_OP_OVER, pi= cture, XCB_RENDER_PICTURE_NONE, effects->xrenderBufferPicture(), 0, 0, 0,= 0, - rect.x(), rect.y(), rect.width(), rect.he= ight()); + qRound((rect.x()+rect.width()/2.0)*data.x= Scale() - rect.width()/2.0 + data.xTranslation()), + qRound((rect.y()+rect.height()/2.0)*data.= yScale() - rect.height()/2.0 + data.yTranslation()), + rect.width(), rect.height()); } } #endif