From kde-commits Mon Aug 25 15:47:14 2014 From: =?utf-8?q?Fredrik_H=C3=B6glund?= Date: Mon, 25 Aug 2014 15:47:14 +0000 To: kde-commits Subject: [kwin] /: Remove the decoration opacity property Message-Id: X-MARC-Message: https://marc.info/?l=kde-commits&m=140898164407420 Git commit 0aff9830df0c87d7cfc8738f059b932b531d6974 by Fredrik H=C3=B6glund. Committed on 04/08/2014 at 19:12. Pushed by fredrik into branch 'master'. Remove the decoration opacity property It has been broken since cross-fading was introduced, and no one has filed any bug reports about it. M +0 -23 autotests/test_window_paint_data.cpp M +0 -24 effects/translucency/package/contents/code/main.js M +0 -3 effects/translucency/package/contents/config/main.xml M +77 -116 effects/translucency/package/contents/ui/config.ui M +1 -4 libkwineffects/kwinanimationeffect.cpp M +1 -1 libkwineffects/kwinanimationeffect.h M +0 -19 libkwineffects/kwineffects.cpp M +0 -12 libkwineffects/kwineffects.h M +1 -1 scene_xrender.cpp http://commits.kde.org/kwin/0aff9830df0c87d7cfc8738f059b932b531d6974 diff --git a/autotests/test_window_paint_data.cpp b/autotests/test_window_p= aint_data.cpp index b1b4819..ceb2067 100644 --- a/autotests/test_window_paint_data.cpp +++ b/autotests/test_window_paint_data.cpp @@ -167,7 +167,6 @@ private Q_SLOTS: void testOperatorMultiplyAssign(); void testOperatorPlus(); void testMultiplyOpacity(); - void testMultiplyDecorationOpacity(); void testMultiplySaturation(); void testMultiplyBrightness(); }; @@ -189,7 +188,6 @@ void TestWindowPaintData::testCtor() QCOMPARE(data.rotationOrigin(), QVector3D()); QCOMPARE(data.rotationAxis(), QVector3D(0.0, 0.0, 1.0)); QCOMPARE(data.opacity(), 0.5); - QCOMPARE(data.decorationOpacity(), 1.0); QCOMPARE(data.brightness(), 1.0); QCOMPARE(data.saturation(), 1.0); } @@ -212,7 +210,6 @@ void TestWindowPaintData::testCopyCtor() QCOMPARE(data2.rotationOrigin(), QVector3D()); QCOMPARE(data2.rotationAxis(), QVector3D(0.0, 0.0, 1.0)); QCOMPARE(data2.opacity(), 1.0); - QCOMPARE(data2.decorationOpacity(), 1.0); QCOMPARE(data2.brightness(), 1.0); QCOMPARE(data2.saturation(), 1.0); = @@ -222,7 +219,6 @@ void TestWindowPaintData::testCopyCtor() data2.setRotationOrigin(QVector3D(1.0, 2.0, 3.0)); data2.setRotationAxis(QVector3D(1.0, 1.0, 0.0)); data2.setOpacity(0.1); - data2.setDecorationOpacity(0.2); data2.setBrightness(0.3); data2.setSaturation(0.4); = @@ -238,7 +234,6 @@ void TestWindowPaintData::testCopyCtor() QCOMPARE(data3.rotationOrigin(), QVector3D(1.0, 2.0, 3.0)); QCOMPARE(data3.rotationAxis(), QVector3D(1.0, 1.0, 0.0)); QCOMPARE(data3.opacity(), 0.1); - QCOMPARE(data3.decorationOpacity(), 0.2); QCOMPARE(data3.brightness(), 0.3); QCOMPARE(data3.saturation(), 0.4); } @@ -303,22 +298,6 @@ void TestWindowPaintData::testMultiplyBrightness() QCOMPARE(0.6, data.brightness()); // just for safety QCOMPARE(1.0, data.opacity()); - QCOMPARE(1.0, data.decorationOpacity()); - QCOMPARE(1.0, data.saturation()); -} - -void TestWindowPaintData::testMultiplyDecorationOpacity() -{ - MockEffectWindowHelper helper; - MockEffectWindow w(&helper); - WindowPaintData data(&w); - QCOMPARE(0.2, data.multiplyDecorationOpacity(0.2)); - QCOMPARE(0.2, data.decorationOpacity()); - QCOMPARE(0.6, data.multiplyDecorationOpacity(3.0)); - QCOMPARE(0.6, data.decorationOpacity()); - // just for safety - QCOMPARE(1.0, data.brightness()); - QCOMPARE(1.0, data.opacity()); QCOMPARE(1.0, data.saturation()); } = @@ -333,7 +312,6 @@ void TestWindowPaintData::testMultiplyOpacity() QCOMPARE(0.6, data.opacity()); // just for safety QCOMPARE(1.0, data.brightness()); - QCOMPARE(1.0, data.decorationOpacity()); QCOMPARE(1.0, data.saturation()); } = @@ -349,7 +327,6 @@ void TestWindowPaintData::testMultiplySaturation() // just for safety QCOMPARE(1.0, data.brightness()); QCOMPARE(1.0, data.opacity()); - QCOMPARE(1.0, data.decorationOpacity()); } = QTEST_MAIN(TestWindowPaintData) diff --git a/effects/translucency/package/contents/code/main.js b/effects/t= ranslucency/package/contents/code/main.js index 27ccbe3..f6468a9 100644 --- a/effects/translucency/package/contents/code/main.js +++ b/effects/translucency/package/contents/code/main.js @@ -21,7 +21,6 @@ var translucencyEffect =3D { activeWindow: effects.activeWindow, settings: { duration: animationTime(250), - decoration: 100, moveresize: 100, dialogs: 100, inactive: 100, @@ -35,7 +34,6 @@ var translucencyEffect =3D { "use strict"; var i, individualMenu, windows; // TODO: add animation duration - translucencyEffect.settings.decoration =3D effect.readConfig("= Decoration", 100); translucencyEffect.settings.moveresize =3D effect.readConfig("= MoveResize", 80); translucencyEffect.settings.dialogs =3D effect.readConfig("= Dialogs", 100); translucencyEffect.settings.inactive =3D effect.readConfig("= Inactive", 100); @@ -97,24 +95,6 @@ var translucencyEffect =3D { } else if (window.menu =3D=3D=3D true) { checkWindow(window, translucencyEffect.settings.tornoffmenus); } - translucencyEffect.startDecorationAnimation(window); - }, - startDecorationAnimation: function (window) { - "use strict"; - var ids; - if (translucencyEffect.settings.decoration =3D=3D=3D 100 || window= .hasDecoration =3D=3D=3D false) { - return; - } - ids =3D set({ - window: window, - duration: 1, - animations: [{ - type: Effect.DecorationOpacity, - from: translucencyEffect.settings.decoration / 100.0, - to: translucencyEffect.settings.decoration / 100.0 - }] - }); - window.decorationOpacityAnimation =3D ids; }, /** * @brief Cancels all animations for window type and inactive window @@ -130,10 +110,6 @@ var translucencyEffect =3D { cancel(window.translucencyInactiveAnimation); window.translucencyInactiveAnimation =3D undefined; } - if (window.decorationOpacityAnimation !=3D=3D undefined) { - cancel(window.decorationOpacityAnimation); - window.decorationOpacityAnimation =3D undefined; - } }, moveResize: { start: function (window) { diff --git a/effects/translucency/package/contents/config/main.xml b/effect= s/translucency/package/contents/config/main.xml index e876421..3112442 100644 --- a/effects/translucency/package/contents/config/main.xml +++ b/effects/translucency/package/contents/config/main.xml @@ -5,9 +5,6 @@ http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" > - - 100 - 80 diff --git a/effects/translucency/package/contents/ui/config.ui b/effects/t= ranslucency/package/contents/ui/config.ui index 56734b9..30d517e 100644 --- a/effects/translucency/package/contents/ui/config.ui +++ b/effects/translucency/package/contents/ui/config.ui @@ -20,8 +20,8 @@ General Translucency Settings - - + + 10 @@ -39,27 +39,21 @@ - - - - - 0 - 0 - - - - Dialogs: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + Qt::Vertical - - kcfg_Dialogs + + + 20 + 0 + - + - - + + 0 @@ -67,17 +61,17 @@ - Decorations: + Combobox popups: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - kcfg_Decoration + kcfg_ComboboxPopups - + 10 @@ -96,8 +90,8 @@ - - + + 10 @@ -115,27 +109,24 @@ - - + + - + 0 0 - Inactive windows: + Opaque Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - kcfg_Inactive - - + 0 @@ -143,94 +134,31 @@ - Moving windows: + Dialogs: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - kcfg_MoveResize + kcfg_Dialogs - - + + - + 0 0 - Combobox popups: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - kcfg_ComboboxPopups + Transparent - - - 10 - - - 100 - - - Qt::Horizontal - - - QSlider::TicksBelow - - - 10 - - - - - - - Qt::Vertical - - - - 20 - 0 - - - - - - - - - 170 - 0 - - - - 10 - - - 100 - - - Qt::Horizontal - - - QSlider::TicksBelow - - - 10 - - - - - + 10 @@ -248,37 +176,46 @@ - - + + - + 0 0 - Transparent + Menus: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + kcfg_Menus - - + + - + 0 0 - Opaque + Moving windows: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + kcfg_MoveResize + - - + + 0 @@ -286,13 +223,38 @@ - Menus: + Inactive windows: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - kcfg_Menus + kcfg_Inactive + + + + + + + + 170 + 0 + + + + 10 + + + 100 + + + Qt::Horizontal + + + QSlider::TicksBelow + + + 10 @@ -479,7 +441,6 @@ - kcfg_Decoration kcfg_Inactive kcfg_MoveResize kcfg_Dialogs diff --git a/libkwineffects/kwinanimationeffect.cpp b/libkwineffects/kwinan= imationeffect.cpp index bd40c4a..8c4c0ef 100644 --- a/libkwineffects/kwinanimationeffect.cpp +++ b/libkwineffects/kwinanimationeffect.cpp @@ -441,7 +441,7 @@ void AnimationEffect::prePaintWindow( EffectWindow* w, = WindowPrePaintData& data, continue; = isUsed =3D true; - if (anim->attribute =3D=3D Opacity || anim->attribute =3D= =3D DecorationOpacity || anim->attribute =3D=3D CrossFadePrevious) + if (anim->attribute =3D=3D Opacity || anim->attribute =3D= =3D CrossFadePrevious) data.setTranslucent(); else if (!(anim->attribute =3D=3D Brightness || anim->attr= ibute =3D=3D Saturation)) { data.setTransformed(); @@ -488,8 +488,6 @@ void AnimationEffect::paintWindow( EffectWindow* w, int= mask, QRegion region, Wi switch (anim->attribute) { case Opacity: data.multiplyOpacity(interpolated(*anim)); break; - case DecorationOpacity: - data.multiplyDecorationOpacity(interpolated(*anim)); b= reak; case Brightness: data.multiplyBrightness(interpolated(*anim)); break; case Saturation: @@ -746,7 +744,6 @@ void AnimationEffect::updateLayerRepaints() continue; switch (anim->attribute) { case Opacity: - case DecorationOpacity: case Brightness: case Saturation: case CrossFadePrevious: diff --git a/libkwineffects/kwinanimationeffect.h b/libkwineffects/kwinanim= ationeffect.h index ea0fad1..0384c71 100644 --- a/libkwineffects/kwinanimationeffect.h +++ b/libkwineffects/kwinanimationeffect.h @@ -100,7 +100,7 @@ public: enum Anchor { Left =3D 1<<0, Top =3D 1<<1, Right =3D 1<<2, Bottom =3D = 1<<3, Horizontal =3D Left|Right, Vertical =3D Top|Bottom, Mous= e =3D 1<<4 }; enum Attribute { - Opacity =3D 0, Brightness, Saturation, Scale, Rotation, Decoration= Opacity, + Opacity =3D 0, Brightness, Saturation, Scale, Rotation, Position, Size, Translation, Clip, Generic, CrossFadePrevious, NonFloatBase =3D Position }; diff --git a/libkwineffects/kwineffects.cpp b/libkwineffects/kwineffects.cpp index 45e30c0..cb4dc29 100644 --- a/libkwineffects/kwineffects.cpp +++ b/libkwineffects/kwineffects.cpp @@ -226,7 +226,6 @@ void PaintData::setRotationOrigin(const QVector3D &orig= in) class WindowPaintDataPrivate { public: qreal opacity; - qreal decorationOpacity; qreal saturation; qreal brightness; int screen; @@ -240,7 +239,6 @@ WindowPaintData::WindowPaintData(EffectWindow* w) { quads =3D w->buildQuads(); setOpacity(w->opacity()); - setDecorationOpacity(1.0); setSaturation(1.0); setBrightness(1.0); setScreen(0); @@ -261,7 +259,6 @@ WindowPaintData::WindowPaintData(const WindowPaintData = &other) setRotationAxis(other.rotationAxis()); setRotationAngle(other.rotationAngle()); setOpacity(other.opacity()); - setDecorationOpacity(other.decorationOpacity()); setSaturation(other.saturation()); setBrightness(other.brightness()); setScreen(other.screen()); @@ -273,11 +270,6 @@ WindowPaintData::~WindowPaintData() delete d; } = -qreal WindowPaintData::decorationOpacity() const -{ - return d->decorationOpacity; -} - qreal WindowPaintData::opacity() const { return d->opacity; @@ -298,11 +290,6 @@ int WindowPaintData::screen() const return d->screen; } = -void WindowPaintData::setDecorationOpacity(qreal opacity) -{ - d->decorationOpacity =3D opacity; -} - void WindowPaintData::setOpacity(qreal opacity) { d->opacity =3D opacity; @@ -333,12 +320,6 @@ void WindowPaintData::setCrossFadeProgress(qreal facto= r) d->crossFadeProgress =3D qBound(qreal(0.0), factor, qreal(1.0)); } = -qreal WindowPaintData::multiplyDecorationOpacity(qreal factor) -{ - d->decorationOpacity *=3D factor; - return d->decorationOpacity; -} - qreal WindowPaintData::multiplyOpacity(qreal factor) { d->opacity *=3D factor; diff --git a/libkwineffects/kwineffects.h b/libkwineffects/kwineffects.h index 9f612b7..9582515 100644 --- a/libkwineffects/kwineffects.h +++ b/libkwineffects/kwineffects.h @@ -2224,14 +2224,10 @@ public: WindowPaintData& operator+=3D(const QVector3D &translation); /** * Window opacity, in range 0 =3D transparent to 1 =3D fully opaque - * Opacity for decoration is opacity*decorationOpacity - * @see decorationOpacity * @see setOpacity - * @see setDecorationOpacity * @since 4.10 */ qreal opacity() const; - qreal decorationOpacity() const; /** * Sets the window opacity to the new @p opacity. * If you want to modify the existing opacity level consider using mul= tiplyOpacity. @@ -2239,7 +2235,6 @@ public: * @since 4.10 **/ void setOpacity(qreal opacity); - void setDecorationOpacity(qreal opacity); /** * Multiplies the current opacity with the @p factor. * @param factor Factor with which the opacity should be multiplied @@ -2248,13 +2243,6 @@ public: **/ qreal multiplyOpacity(qreal factor); /** - * Multiplies the current decoration opacity with the @p factor. - * @param factor Factor with which the opacity should be multiplied - * @return New decoration opacity level - * @since 4.10 - **/ - qreal multiplyDecorationOpacity(qreal factor); - /** * Saturation of the window, in range [0; 1] * 1 means that the window is unchanged, 0 means that it's completely * unsaturated (greyscale). 0.5 would make the colors less intense, diff --git a/scene_xrender.cpp b/scene_xrender.cpp index ed45a8f..de01b12 100644 --- a/scene_xrender.cpp +++ b/scene_xrender.cpp @@ -847,7 +847,7 @@ xcb_render_composite(connection(), XCB_RENDER_PICT_OP_O= VER, m_xrenderShadow->pic = if (client || deleted) { if (!noBorder) { - xcb_render_picture_t decorationAlpha =3D xRenderBlendPictu= re(data.opacity() * data.decorationOpacity()); + xcb_render_picture_t decorationAlpha =3D xRenderBlendPictu= re(data.opacity()); auto renderDeco =3D [decorationAlpha, renderTarget](xcb_re= nder_picture_t deco, const QRect &rect) { if (deco =3D=3D XCB_RENDER_PICTURE_NONE) { return;