From kde-commits Thu Jul 10 11:42:42 2014 From: =?utf-8?q?Martin_Gr=C3=A4=C3=9Flin?= Date: Thu, 10 Jul 2014 11:42:42 +0000 To: kde-commits Subject: [kwin] effects/trackmouse: make trackmouse FX account paintdata scale/trans Message-Id: X-MARC-Message: https://marc.info/?l=kde-commits&m=140499257226942 Git commit 5185fe81cf8a5163ca83d156b9ff34656cc8da58 by Martin Gr=C3=A4=C3= =9Flin. Committed on 10/07/2014 at 11:35. Pushed by graesslin into branch 'master'. make trackmouse FX account paintdata scale/trans REVIEW: 118537 CCBUG: 333012 cherry-picked from kde-workspace e9919695e57612055acfc685707210c00a42ce00. Original author: luebking M +7 -3 effects/trackmouse/trackmouse.cpp http://commits.kde.org/kwin/5185fe81cf8a5163ca83d156b9ff34656cc8da58 diff --git a/effects/trackmouse/trackmouse.cpp b/effects/trackmouse/trackmo= use.cpp index ea3e026..436ace1 100644 --- a/effects/trackmouse/trackmouse.cpp +++ b/effects/trackmouse/trackmouse.cpp @@ -134,10 +134,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); shader->setUniform(GLShader::ModelViewMatrix, matrix); shader->setUniform(GLShader::Saturation, 1.0); shader->setUniform(GLShader::ModulationConstant, QVector4D(1.0= , 1.0, 1.0, 1.0)); @@ -169,7 +171,9 @@ void TrackMouseEffect::paintScreen(int mask, QRegion re= gion, ScreenPaintData& da const QRect &rect =3D m_lastRect[i]; xcb_render_composite(xcbConnection(), XCB_RENDER_PICT_OP_OVER,= picture, 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