[meego-commits] 15393: Changes to Trunk/meegotouch-compositor

Peter Zhu no_reply at build.meego.com
Tue Mar 29 03:20:06 UTC 2011


Hi,
I have made the following changes to meegotouch-compositor in project Trunk. Please review and accept ASAP.

Thank You,
Peter Zhu

[This message was auto-generated]

---

Request #15393:

  submit:   Trunk:Testing/meegotouch-compositor(r2) -> Trunk/meegotouch-compositor


Message:
    Move to Trunk

State:   new          2011-03-28T20:19:57 peter
Comment: None



changes files:
--------------
--- meegotouch-compositor.changes
+++ meegotouch-compositor.changes
@@ -0,0 +1,13 @@
+* Thu Mar 24 2011 Rusty Lynch <rusty.lynch at intel.com> - 0.8.5
+- added patches for the tablet vertical support (BMC#14913)
+  decorator_removal.patch
+  Fix-flashing-in-transition-starts.patch
+  Introduce-_MEEGOTOUCH_SKIP_ANIMATIONS-window-propert.patch
+  XSync-after-un-redirecting-windows-in-EGL-MTexturePi.patch
+  Use-QTransform-rather-than-the-deprecated-matrix-cla.patch
+  Add-transition-interface-to-be-used-in-MCompWindowAn.patch
+  Introduce-Rotate-in-transition.patch
+  Take-the-new-transition-interface-into-use-in-MCompW.patch
+- removed mdecorator.desktop file
+- updated files list: remove decorator related files and *.pyc/pyo files
+

old:
----
  mdecorator.desktop

new:
----
  Add-transition-interface-to-be-used-in-MCompWindowAn.patch
  Fix-flashing-in-transition-starts.patch
  Introduce-Rotate-in-transition.patch
  Introduce-_MEEGOTOUCH_SKIP_ANIMATIONS-window-propert.patch
  Take-the-new-transition-interface-into-use-in-MCompW.patch
  Use-QTransform-rather-than-the-deprecated-matrix-cla.patch
  XSync-after-un-redirecting-windows-in-EGL-MTexturePi.patch
  decorator_removal.patch

spec files:
-----------
--- meegotouch-compositor.spec
+++ meegotouch-compositor.spec
@@ -13,7 +13,6 @@
 License:    LGPLv2.1
 URL:        http://meego.gitorious.org/meegotouch/meegotouch-compositor
 Source0:    %{name}-%{version}.tar.bz2
-Source1:    mdecorator.desktop
 Source100:  meegotouch-compositor.yaml
 Patch0:     add_Xext_lib_to_windowctl.patch
 Patch1:     initialize_EGL_library.patch
@@ -22,6 +21,14 @@
 Patch4:     BMC_13622_statusbar_2.patch
 Patch5:     BMC_14207_double_xterm_thumbnail.patch
 Patch6:     no_mce.patch
+Patch7:     decorator_removal.patch
+Patch8:     Fix-flashing-in-transition-starts.patch
+Patch9:     Introduce-_MEEGOTOUCH_SKIP_ANIMATIONS-window-propert.patch
+Patch10:     XSync-after-un-redirecting-windows-in-EGL-MTexturePi.patch
+Patch11:     Use-QTransform-rather-than-the-deprecated-matrix-cla.patch
+Patch12:     Add-transition-interface-to-be-used-in-MCompWindowAn.patch
+Patch13:     Introduce-Rotate-in-transition.patch
+Patch14:     Take-the-new-transition-interface-into-use-in-MCompW.patch
 Requires(post): /sbin/ldconfig
 Requires(postun): /sbin/ldconfig
 BuildRequires:  pkgconfig(QtDBus)
@@ -89,6 +96,22 @@
 %patch5 -p1
 # no_mce.patch
 %patch6 -p1
+# decorator_removal.patch
+%patch7 -p1
+# Fix-flashing-in-transition-starts.patch
+%patch8 -p1
+# Introduce-_MEEGOTOUCH_SKIP_ANIMATIONS-window-propert.patch
+%patch9 -p1
+# XSync-after-un-redirecting-windows-in-EGL-MTexturePi.patch
+%patch10 -p1
+# Use-QTransform-rather-than-the-deprecated-matrix-cla.patch
+%patch11 -p1
+# Add-transition-interface-to-be-used-in-MCompWindowAn.patch
+%patch12 -p1
+# Introduce-Rotate-in-transition.patch
+%patch13 -p1
+# Take-the-new-transition-interface-into-use-in-MCompW.patch
+%patch14 -p1
 # >> setup
 # << setup
 
@@ -107,9 +130,6 @@
 # >> install pre
 # << install pre
 %qmake_install
-mkdir -p %{buildroot}%{_sysconfdir}/xdg/autostart
-cp -a %{SOURCE1} %{buildroot}%{_sysconfdir}/xdg/autostart
-
 
 # >> install post
 # << install post
@@ -130,10 +150,7 @@
 %files
 %defattr(-,root,root,-)
 # >> files
-%config %{_sysconfdir}/xdg/autostart/mdecorator.desktop
 %{_bindir}/mcompositor
-%{_bindir}/mdecorator
-%{_libdir}/libdecorator.so.*
 %{_libdir}/libmcompositor.so.*
 # << files
 
@@ -144,13 +161,7 @@
 %{_bindir}/focus-tracker
 %{_bindir}/windowctl
 %{_bindir}/windowstack
-%{_libdir}/libdecorator.so
 %{_libdir}/libmcompositor.so
-%{_includedir}/meegotouch/libdecorator/mabstractdecorator.h
-%{_includedir}/meegotouch/libdecorator/mabstractappinterface.h
-%{_includedir}/meegotouch/libdecorator/mdecorator_dbus_interface.h
-%{_includedir}/meegotouch/libdecorator/mrmiclient.h
-%{_includedir}/meegotouch/libdecorator/mrmiserver.h
 %{_includedir}/meegotouch/mcompositor/mcompatoms_p.h
 %{_includedir}/meegotouch/mcompositor/mcompmgrextensionfactory.h
 %{_includedir}/meegotouch/mcompositor/mcompositemanager.h
@@ -159,7 +170,6 @@
 %{_includedir}/meegotouch/mcompositor/mcompositewindowgroup.h
 %{_includedir}/meegotouch/mcompositor/mcompositewindowshadereffect.h
 %{_includedir}/meegotouch/mcompositor/mwindowpropertycache.h
-%{_datadir}/l10n/meegotouch/recovery.qm
 # << files devel
 
 %files tests
@@ -168,74 +178,28 @@
 %{_bindir}/mcompositor-test-init.py
 %{_datadir}/mcompositor-functional-tests/tests.xml
 %{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test00.py
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test0.pyc
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test0.pyo
 %{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test01.py
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test1.pyc
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test1.pyo
 %{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test10.py
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test10.pyc
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test10.pyo
 %{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test11.py
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test11.pyc
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test11.pyo
 %{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test12.py
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test12.pyc
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test12.pyo
 %{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test13.py
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test13.pyc
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test13.pyo
 %{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test14.py
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test14.pyc
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test14.pyo
 %{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test15.py
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test15.pyc
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test15.pyo
 %{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test16.py
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test16.pyc
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test16.pyo
 %{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test17.py
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test17.pyc
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test17.pyo
 %{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test18.py
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test18.pyc
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test18.pyo
 %{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test19.py
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test19.pyc
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test19.pyo
 %{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test02.py
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test2.pyc
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test2.pyo
 %{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test20a.py
 %{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test20b.py
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test20.pyc
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test20.pyo
 %{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test21.py
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test21.pyc
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test21.pyo
 %{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test22.py
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test22.pyc
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test22.pyo
 %{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test03.py
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test3.pyc
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test3.pyo
 %{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test04.py
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test4.pyc
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test4.pyo
 %{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test05.py
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test5.pyc
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test5.pyo
 %{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test06.py
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test6.pyc
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test6.pyo
 %{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test07.py
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test7.pyc
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test7.pyo
 %{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test08.py
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test8.pyc
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test8.pyo
 %{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test09.py
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test9.pyc
-#%{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test9.pyo
 # << files tests
 

other changes:
--------------

++++++ Add-transition-interface-to-be-used-in-MCompWindowAn.patch (new)
--- Add-transition-interface-to-be-used-in-MCompWindowAn.patch
+++ Add-transition-interface-to-be-used-in-MCompWindowAn.patch
+From 07ed758cc3b91ea1efe719f6f42a0e91a5f2065e Mon Sep 17 00:00:00 2001
+From: Kalle Vahlman <kalle.vahlman at movial.com>
+Date: Tue, 28 Dec 2010 07:03:49 +0000
+Subject: [PATCH 2/4] Add transition interface to be used in MCompWindowAnimator
+
+---
+ src/manimatortransitioninterface.h |   64 ++++++++++++++++++++++++++++++++++++
+ src/mcompositescene.cpp            |    3 +-
+ src/mcompositewindow.cpp           |    5 +++
+ src/mcompositewindow.h             |    2 +
+ src/mcompwindowanimator.cpp        |    5 +++
+ src/mcompwindowanimator.h          |    2 +
+ src/src.pro                        |    1 +
+ 7 files changed, 81 insertions(+), 1 deletions(-)
+ create mode 100644 src/manimatortransitioninterface.h
+
+--- /dev/null
++++ b/src/manimatortransitioninterface.h
+@@ -0,0 +1,64 @@
++/***************************************************************************
++** Interface for window transitions.
++** Copyright © 2010, Intel Corporation.
++**
++** This library is free software; you can redistribute it and/or
++** modify it under the terms of the GNU Lesser General Public
++** License version 2.1 as published by the Free Software Foundation
++** and appearing in the file LICENSE.LGPL included in the packaging
++** of this file.
++**
++****************************************************************************/
++
++#ifndef MANIMATORTRANSITIONINTERFACE_H
++#define MANIMATORTRANSITIONINTERFACE_H
++
++class MCompWindowAnimator;
++class MCompositeWindow;
++class QTransform;
++class QGraphicsItemAnimation;
++class QTimeLine;
++class QPointF;
++
++/*!
++ * Transition interface
++ */
++class MAnimatorTransitionInterface
++{
++
++public:
++
++    virtual ~MAnimatorTransitionInterface() {}
++
++    //! translates and scale the item to a new size and
++    // from its current position to new position with animation
++    //
++    // \param reverScale Set to true to reverse the scaling
++    virtual void translateScale(MCompositeWindow *item,
++                                QTransform &matrix,
++                                QGraphicsItemAnimation &anim,
++                                QTimeLine &timer,
++                                qreal fromSx, qreal fromSy,
++                                qreal toSx, qreal toSy,
++                                const QPointF &newPos,
++                                bool reversed) = 0;
++
++    /*!
++     * Direct interface to timeline. MTexturePixmapItem doesn't support
++     * standard QGraphicsItem scale and rotation. So we call this for each
++     * item's frame for complete control of the transitions
++     */
++    virtual void advanceFrame(MCompositeWindow *item,
++                              QTransform &matrix,
++                              QGraphicsItemAnimation &anim,
++                              QTimeLine &timer,
++                              qreal step,
++                              bool reversed) = 0;
++
++    /* Whether or not this transition needs the background to be cleared */
++    virtual bool needsClearBackground() = 0;
++};
++
++// TODO: Make this a plugin interface?
++//Q_DECLARE_INTERFACE(MAnimatorTransitionInterface, ...)
++#endif
+--- a/src/mcompositescene.cpp
++++ b/src/mcompositescene.cpp
+@@ -119,7 +119,8 @@ void MCompositeScene::drawItems(QPainter
+             if (size >= 9)
+                 to_paint.resize(to_paint.size()+1);
+             to_paint[size++] = i;
+-            if (cw->propertyCache()->windowTypeAtom()
++            if (!cw->needsClearBackground()
++                && cw->propertyCache()->windowTypeAtom()
+                                          == ATOM(_NET_WM_WINDOW_TYPE_DESKTOP))
+                 desktop_painted = true;
+         }
+--- a/src/mcompositewindow.cpp
++++ b/src/mcompositewindow.cpp
+@@ -791,3 +791,8 @@ MCompositeWindowGroup* MCompositeWindow:
+     return 0;
+ #endif
+ }
++
++bool MCompositeWindow::needsClearBackground()
++{
++    return anim->needsClearBackground();
++}
+--- a/src/mcompositewindow.h
++++ b/src/mcompositewindow.h
+@@ -305,6 +305,8 @@ public:
+     
+     bool dimmedEffect() const { return dimmed_effect; }
+     
++    bool needsClearBackground();
++
+ public slots:
+ 
+     void updateIconGeometry();
+--- a/src/mcompwindowanimator.cpp
++++ b/src/mcompwindowanimator.cpp
+@@ -226,3 +226,8 @@ bool MCompWindowAnimator::pendingAnimati
+ {
+     return deferred_animation;
+ }
++
++bool MCompWindowAnimator::needsClearBackground()
++{
++    return trans->needsClearBackground();
++}
+--- a/src/mcompwindowanimator.h
++++ b/src/mcompwindowanimator.h
+@@ -79,6 +79,8 @@ public:
+     //! There is a pending animation to be executed soon
+     bool pendingAnimation() const;
+ 
++    bool needsClearBackground();
++
+ public slots:
+     /*!
+      * Direct interface to timeline. MTexturePixmapItem doesn't support
+--- a/src/src.pro
++++ b/src/src.pro
+@@ -34,6 +34,7 @@ HEADERS += \
+     mcompositewindow.h \
+     mwindowpropertycache.h \
+     mcompwindowanimator.h \
++    manimatortransitioninterface.h \
+     mcompositemanager.h \
+     mcompositemanager_p.h \
+     mdevicestate.h \

++++++ BMC_13622_statusbar.patch
--- BMC_13622_statusbar.patch
+++ BMC_13622_statusbar.patch
@@ -10,36 +10,32 @@
  decorators/mdecorator/mdecoratorwindow.cpp |   13 ++++++++-----
  1 files changed, 8 insertions(+), 5 deletions(-)
 
-diff --git a/decorators/mdecorator/mdecoratorwindow.cpp b/decorators/mdecorator/mdecoratorwindow.cpp
-index 8085aa0..7193ebe 100644
---- a/decorators/mdecorator/mdecoratorwindow.cpp
-+++ b/decorators/mdecorator/mdecoratorwindow.cpp
-@@ -292,8 +292,8 @@ MDecoratorWindow::MDecoratorWindow(QWidget *parent)
-         }
-     }
- 
--
--    if (!homeButtonPanel || !navigationBar || !statusBar)
-+    // Check for presence of homeButtonPanel and navigationBar, statusBar can be NULL
-+    if (!homeButtonPanel || !navigationBar)
-         qFatal("Meego elements not found");
- 
-     homeButtonPanel = new MHomeButtonPanel();
-@@ -528,9 +528,12 @@ void MDecoratorWindow::setInputRegion()
-         region = fs;
-     } else {
-         // Decoration includes the status bar, and possibly other elements.
--        QRect sbrect = statusBar->geometry().toRect();
--        if (statusBarHeight)
--            sbrect.setHeight(statusBarHeight);
-+        QRect sbrect;
-+        if (statusBar) {
-+            sbrect = statusBar->geometry().toRect();
-+            if (statusBarHeight)
-+                sbrect.setHeight(statusBarHeight);
-+        }
-         region = sbrect;
-         if (!only_statusbar) {
-             region += navigationBar->geometry().toRect();
--- 
-1.6.1
+--- a/decorators/mdecorator/mdecoratorwindow.cpp
++++ b/decorators/mdecorator/mdecoratorwindow.cpp
+@@ -292,8 +292,8 @@ MDecoratorWindow::MDecoratorWindow(QWidg
+         }
+     }
+ 
+-
+-    if (!homeButtonPanel || !navigationBar || !statusBar)
++    // Check for presence of homeButtonPanel and navigationBar, statusBar can be NULL
++    if (!homeButtonPanel || !navigationBar)
+         qFatal("Meego elements not found");
+ 
+     homeButtonPanel = new MHomeButtonPanel();
+@@ -519,9 +519,12 @@ void MDecoratorWindow::setInputRegion()
+         region = fs;
+     } else {
+         // Decoration includes the status bar, and possibly other elements.
+-        QRect sbrect = statusBar->geometry().toRect();
+-        if (statusBarHeight)
+-            sbrect.setHeight(statusBarHeight);
++        QRect sbrect;
++        if (statusBar) {
++            sbrect = statusBar->geometry().toRect();
++            if (statusBarHeight)
++                sbrect.setHeight(statusBarHeight);
++        }
+         region = sbrect;
+         if (!only_statusbar) {
+             region += navigationBar->geometry().toRect();

++++++ BMC_13622_statusbar_2.patch
--- BMC_13622_statusbar_2.patch
+++ BMC_13622_statusbar_2.patch
@@ -13,69 +13,62 @@
  decorators/mdecorator/mdecoratorwindow.h   |    1 -
  2 files changed, 6 insertions(+), 17 deletions(-)
 
-diff --git a/decorators/mdecorator/mdecoratorwindow.cpp b/decorators/mdecorator/mdecoratorwindow.cpp
-index 7193ebe..917ba58 100644
---- a/decorators/mdecorator/mdecoratorwindow.cpp
-+++ b/decorators/mdecorator/mdecoratorwindow.cpp
-@@ -245,7 +245,6 @@ MDecoratorWindow::MDecoratorWindow(QWidget *parent)
-       escapeButtonPanel(0),
-       navigationBar(0),
-       statusBar(0),
--      statusBarHeight(0),
-       messageBox(0),
-       managed_window(0),
-       menuVisible(false)
-@@ -278,15 +277,6 @@ MDecoratorWindow::MDecoratorWindow(QWidget *parent)
-         if (!statusBar) {
-             statusBar = dynamic_cast<MStatusBar*>(item);
-             if (statusBar) {
--                // We can't believe statusBar.geometry() because it
--                // includes some unwanted margins.  Get straight the
--                // constant if available.
--                MDeviceProfile *dev = MDeviceProfile::instance();
--                QSettings ini("/usr/share/themes/base/meegotouch/constants.ini",
--                              QSettings::IniFormat);
--                QString mm = ini.value("Sizes/HEIGHT_STATUSBAR").toString();
--                if (mm.endsWith("mm"))
--                    statusBarHeight = dev->mmToPixels(atoi(mm.toLatin1().constData()));
-                 continue;
-             }
-         }
-@@ -530,16 +520,16 @@ void MDecoratorWindow::setInputRegion()
-         // Decoration includes the status bar, and possibly other elements.
-         QRect sbrect;
-         if (statusBar) {
--            sbrect = statusBar->geometry().toRect();
--            if (statusBarHeight)
--                sbrect.setHeight(statusBarHeight);
-+            sbrect = statusBar->sceneBoundingRect().toRect();
-+            sbrect.setHeight(statusBar->property("sharedPixmapHeight").value<qreal>());
-         }
-         region = sbrect;
-+
-         if (!only_statusbar) {
--            region += navigationBar->geometry().toRect();
--            region += homeButtonPanel->geometry().toRect();
-+            region += navigationBar->sceneBoundingRect().toRect();
-+            region += homeButtonPanel->sceneBoundingRect().toRect();
-             if (escapeButtonPanel)
--                region += escapeButtonPanel->geometry().toRect();
-+                region += escapeButtonPanel->sceneBoundingRect().toRect();
-         }
-
-         // The coordinates we receive from libmeegotouch are rotated
-diff --git a/decorators/mdecorator/mdecoratorwindow.h b/decorators/mdecorator/mdecoratorwindow.h
-index e0c043d..ad919a7 100644
---- a/decorators/mdecorator/mdecoratorwindow.h
-+++ b/decorators/mdecorator/mdecoratorwindow.h
-@@ -90,7 +90,6 @@ private:
-     MEscapeButtonPanel *escapeButtonPanel;
-     MNavigationBar *navigationBar;
-     MStatusBar *statusBar;
--    unsigned statusBarHeight;
-     MMessageBox *messageBox;
-     Window managed_window;
-     QRect availableRect; // available area for the managed window
---
-1.6.1
-
+--- a/decorators/mdecorator/mdecoratorwindow.cpp
++++ b/decorators/mdecorator/mdecoratorwindow.cpp
+@@ -245,7 +245,6 @@ MDecoratorWindow::MDecoratorWindow(QWidg
+       escapeButtonPanel(0),
+       navigationBar(0),
+       statusBar(0),
+-      statusBarHeight(0),
+       messageBox(0),
+       managed_window(0),
+       menuVisible(false)
+@@ -278,15 +277,6 @@ MDecoratorWindow::MDecoratorWindow(QWidg
+         if (!statusBar) {
+             statusBar = dynamic_cast<MStatusBar*>(item);
+             if (statusBar) {
+-                // We can't believe statusBar.geometry() because it
+-                // includes some unwanted margins.  Get straight the
+-                // constant if available.
+-                MDeviceProfile *dev = MDeviceProfile::instance();
+-                QSettings ini("/usr/share/themes/base/meegotouch/constants.ini",
+-                              QSettings::IniFormat);
+-                QString mm = ini.value("Sizes/HEIGHT_STATUSBAR").toString();
+-                if (mm.endsWith("mm"))
+-                    statusBarHeight = dev->mmToPixels(atoi(mm.toLatin1().constData()));
+                 continue;
+             }
+         }
+@@ -521,16 +511,16 @@ void MDecoratorWindow::setInputRegion()
+         // Decoration includes the status bar, and possibly other elements.
+         QRect sbrect;
+         if (statusBar) {
+-            sbrect = statusBar->geometry().toRect();
+-            if (statusBarHeight)
+-                sbrect.setHeight(statusBarHeight);
++            sbrect = statusBar->sceneBoundingRect().toRect();
++            sbrect.setHeight(statusBar->property("sharedPixmapHeight").value<qreal>());
+         }
+         region = sbrect;
++
+         if (!only_statusbar) {
+-            region += navigationBar->geometry().toRect();
+-            region += homeButtonPanel->geometry().toRect();
++            region += navigationBar->sceneBoundingRect().toRect();
++            region += homeButtonPanel->sceneBoundingRect().toRect();
+             if (escapeButtonPanel)
+-                region += escapeButtonPanel->geometry().toRect();
++                region += escapeButtonPanel->sceneBoundingRect().toRect();
+         }
+ 
+         // The coordinates we receive from libmeegotouch are rotated
+--- a/decorators/mdecorator/mdecoratorwindow.h
++++ b/decorators/mdecorator/mdecoratorwindow.h
+@@ -90,7 +90,6 @@ private:
+     MEscapeButtonPanel *escapeButtonPanel;
+     MNavigationBar *navigationBar;
+     MStatusBar *statusBar;
+-    unsigned statusBarHeight;
+     MMessageBox *messageBox;
+     Window managed_window;
+     QRect availableRect; // available area for the managed window

++++++ BMC_14207_double_xterm_thumbnail.patch
--- BMC_14207_double_xterm_thumbnail.patch
+++ BMC_14207_double_xterm_thumbnail.patch
@@ -10,11 +10,9 @@
  decorators/mdecorator/mdecoratorwindow.cpp |   14 ++++++++++----
  1 files changed, 10 insertions(+), 4 deletions(-)
 
-diff --git a/decorators/mdecorator/mdecoratorwindow.cpp b/decorators/mdecorator/mdecoratorwindow.cpp
-index 4e33845..4ec3854 100644
 --- a/decorators/mdecorator/mdecoratorwindow.cpp
 +++ b/decorators/mdecorator/mdecoratorwindow.cpp
-@@ -472,6 +472,7 @@ void MDecoratorWindow::setInputRegion()
+@@ -505,6 +505,7 @@ void MDecoratorWindow::setInputRegion()
      const QRegion fs(QApplication::desktop()->screenGeometry());
      // region := decoration region
      if (messageBox || menuVisible) {
@@ -22,7 +20,7 @@
          // Occupy all space.
          region = fs;
      } else {
-@@ -602,19 +603,24 @@ void MDecoratorWindow::menuAppearing()
+@@ -636,19 +637,24 @@ void MDecoratorWindow::menuAppearing()
  {
      if (menuVisible)
          return;
@@ -51,6 +49,3 @@
  }
  
  void MDecoratorWindow::menuDisappeared()
--- 
-1.6.1
-

++++++ Fix-flashing-in-transition-starts.patch (new)
--- Fix-flashing-in-transition-starts.patch
+++ Fix-flashing-in-transition-starts.patch
+From 69c57b00fe05f9bab92d0de429aff5942b7c08f9 Mon Sep 17 00:00:00 2001
+From: Kalle Vahlman <kalle.vahlman at movial.com>
+Date: Tue, 15 Feb 2011 19:02:06 -0500
+Subject: [PATCH 1/2] Fix flashing in transition starts
+
+Make sure that in the case of a reverse transition, the window is not
+visible until the initial transformation has been set.
+
+We also need to make sure the QGraphicsItem representing the window is
+visible when transitioning in the first time. Calling setVisible for the
+MCompositeWindow doesn't work since it doesn't react if the transition
+is on...
+---
+ src/mcompwindowanimator.cpp |    5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+--- a/src/mcompwindowanimator.cpp
++++ b/src/mcompwindowanimator.cpp
+@@ -96,6 +96,8 @@ void MCompWindowAnimator::advanceFrame(q
+         behind->setOpacity(!reversed ? opac_rev : opac_norm);
+     }
+     
++    qobject_cast<QGraphicsItem *>(item)->setVisible(true);
++
+     MCompositeManager *p = (MCompositeManager *) qApp;
+     p->d->glwidget->update();
+ }
+@@ -140,6 +142,9 @@ void MCompWindowAnimator::translateScale
+         anim.setPosAt(1.0, newPos);
+     }
+ 
++    if (reverse)
++        item->setVisible(false);
++
+     if (!deferred_animation)
+         if (timer.state() == QTimeLine::NotRunning) {
+             emit transitionStart();

++++++ Introduce-Rotate-in-transition.patch (new)
--- Introduce-Rotate-in-transition.patch
+++ Introduce-Rotate-in-transition.patch
+From 78696ab24720e72abae647c987ee239faf792f3e Mon Sep 17 00:00:00 2001
+From: Kalle Vahlman <kalle.vahlman at movial.com>
+Date: Wed, 23 Mar 2011 01:53:21 -0400
+Subject: [PATCH 3/4] Introduce Rotate in transition
+
+---
+ src/manimatortransitionrotatein.cpp |  137 +++++++++++++++++++++++++++++++++++
+ src/manimatortransitionrotatein.h   |   64 ++++++++++++++++
+ src/src.pro                         |    2 +
+ 3 files changed, 203 insertions(+), 0 deletions(-)
+ create mode 100644 src/manimatortransitionrotatein.cpp
+ create mode 100644 src/manimatortransitionrotatein.h
+
+--- /dev/null
++++ b/src/manimatortransitionrotatein.cpp
+@@ -0,0 +1,137 @@
++/***************************************************************************
++** Horizontal scroll window transition.
++** Copyright © 2010, Intel Corporation.
++**
++** This library is free software; you can redistribute it and/or
++** modify it under the terms of the GNU Lesser General Public
++** License version 2.1 as published by the Free Software Foundation
++** and appearing in the file LICENSE.LGPL included in the packaging
++** of this file.
++**
++****************************************************************************/
++
++#include "mcompwindowanimator.h"
++#include "manimatortransitioninterface.h"
++#include "manimatortransitionrotatein.h"
++#include "mcompositewindow.h"
++
++MAnimatorTransitionRotateIn::MAnimatorTransitionRotateIn(MCompWindowAnimator *tor)
++    : QObject(),
++    m_tor(tor)
++{
++
++}
++
++// item transition
++void MAnimatorTransitionRotateIn::advanceFrame(MCompositeWindow *item,
++                                           QTransform &matrix,
++                                           QGraphicsItemAnimation &anim,
++                                           QTimeLine &timer,
++                                           qreal step,
++                                           bool reverse)
++{
++    Q_UNUSED(timer);
++
++    item->setVisible(true);
++
++    // We need the item to stay put
++    item->setPos(QPointF(0,0));
++
++    qreal deg = -90*(reverse ? 1.0-step : step);
++    qreal ox = item->boundingRect().width()/2.0;
++    qreal oy = item->boundingRect().height()/2.0;
++
++    QTransform t;
++    t.translate(ox, oy);
++    t.scale(anim.horizontalScaleAt(step), anim.verticalScaleAt(step));
++    t.rotate(deg, Qt::YAxis);
++    t.translate(-ox, -oy);
++    item->setTransform(t);
++
++     // FIXME: need to interpolate
++    item->setOpacity(reverse ? step : 1.0-step);
++
++    MCompositeWindow* behind = item->behind();
++    if (behind) {
++        // FIXME: need to interpolate
++        behind->setOpacity(reverse ? 1.0-step : step);
++        behind->setPos(QPointF(0,0));
++        QTransform bt;
++        bt.scale(behind_anim.horizontalScaleAt(step),
++                 behind_anim.verticalScaleAt(step));
++        bt.translate(behind_anim.posAt(step).x(), behind_anim.posAt(step).y());
++        behind->setTransform(bt);
++    }
++}
++
++// translate item + scale
++void MAnimatorTransitionRotateIn::translateScale(MCompositeWindow *item,
++                                             QTransform &matrix,
++                                             QGraphicsItemAnimation &anim,
++                                             QTimeLine &timer,
++                                             qreal fromSx, qreal fromSy,
++                                             qreal toSx, qreal toSy,
++                                             const QPointF &newPos,
++                                             bool reverse)
++{
++    Q_UNUSED(matrix);
++    Q_UNUSED(fromSx);
++    Q_UNUSED(fromSy);
++    Q_UNUSED(toSx);
++    Q_UNUSED(toSy);
++
++    anim.clear();
++
++    item->resetTransform();
++
++    qreal height = item->boundingRect().height();
++    qreal width = item->boundingRect().width();
++    QPoint startPos(width/4.0, height/5.0);
++
++    MCompositeWindow* behind = item->behind();
++    if (behind)
++    {
++        behind->resetTransform();
++        behind_anim.clear();
++    }
++
++    if (!reverse) {
++        timer.setCurveShape(QTimeLine::EaseInCurve);
++
++        anim.setScaleAt(0, 1.0, 1.0);
++        anim.setScaleAt(1.0, 0.25, 0.25);
++        anim.setPosAt(0.0, QPoint(0, 0));
++        anim.setPosAt(1.0, startPos);
++
++        if (behind)
++        {
++            qreal h = behind->boundingRect().height();
++            qreal w = behind->boundingRect().width();
++            QPoint sPos(width/6.0, height/6.0);
++
++            behind_anim.setScaleAt(0.0, 0.75, 0.75);
++            behind_anim.setScaleAt(1.0, 1.0, 1.0);
++            behind_anim.setPosAt(0.0, sPos);
++            behind_anim.setPosAt(1.0, QPoint(0, 0));
++        }
++    } else {
++        timer.setCurveShape(QTimeLine::EaseInCurve);
++
++        anim.setScaleAt(0, 0.25, 0.25);
++        anim.setScaleAt(1.0, 1.0, 1.0);
++        anim.setPosAt(0.0, startPos);
++        anim.setPosAt(1.0, QPoint(0, 0));
++
++        if (behind)
++        {
++            qreal h = behind->boundingRect().height();
++            qreal w = behind->boundingRect().width();
++            QPoint sPos(width/10.0, height/10.0);
++
++            behind_anim.setScaleAt(0.0, 1.0, 1.0);
++            behind_anim.setScaleAt(1.0, 0.9, 0.9);
++            behind_anim.setPosAt(0.0, QPoint(0, 0));
++            behind_anim.setPosAt(1.0, sPos);
++        }
++    }
++}
+--- /dev/null
++++ b/src/manimatortransitionrotatein.h
+@@ -0,0 +1,64 @@
++/***************************************************************************
++** Drop down / Rocket up window transition.
++** Copyright © 2010, Intel Corporation.
++**
++** This library is free software; you can redistribute it and/or
++** modify it under the terms of the GNU Lesser General Public
++** License version 2.1 as published by the Free Software Foundation
++** and appearing in the file LICENSE.LGPL included in the packaging
++** of this file.
++**
++****************************************************************************/
++
++#ifndef MANIMATORTRANSITIONROTATEIN_H
++#define MANIMATORTRANSITIONROTATEIN_H
++
++#include <QObject>
++#include <QGraphicsItemAnimation>
++
++#include "manimatortransitioninterface.h"
++
++class MCompWindowAnimator;
++class MCompositeWindow;
++class QTransform;
++class QGraphicsItemAnimation;
++class QTimeLine;
++class QPointF;
++
++/*!
++ * Transition with drop in / rocket out effect
++ */
++class MAnimatorTransitionRotateIn: public QObject, public MAnimatorTransitionInterface
++{
++    Q_OBJECT
++//    Q_INTERFACES(MAnimatorTransitionInterface)
++
++public:
++
++    MAnimatorTransitionRotateIn(MCompWindowAnimator *tor);
++
++    void translateScale(MCompositeWindow *item,
++                        QTransform &matrix,
++                        QGraphicsItemAnimation &anim,
(40 more lines skipped)

++++++ Introduce-_MEEGOTOUCH_SKIP_ANIMATIONS-window-propert.patch (new)
--- Introduce-_MEEGOTOUCH_SKIP_ANIMATIONS-window-propert.patch
+++ Introduce-_MEEGOTOUCH_SKIP_ANIMATIONS-window-propert.patch
+From e120355a7a24bd0a283fbad4a9d909557f1168f9 Mon Sep 17 00:00:00 2001
+From: Kalle Vahlman <kalle.vahlman at movial.com>
+Date: Fri, 11 Mar 2011 06:28:57 -0500
+Subject: [PATCH 2/2] Introduce _MEEGOTOUCH_SKIP_ANIMATIONS window property
+
+Setting this property for a window makes mcompositor skip the transition
+animations for the window in question.
+---
+ src/mcompatoms_p.h           |    1 +
+ src/mcompositemanager.cpp    |    1 +
+ src/mcompositewindow.cpp     |   19 +++++++++++++++++++
+ src/mwindowpropertycache.cpp |   22 ++++++++++++++++++++++
+ src/mwindowpropertycache.h   |    5 ++++-
+ 5 files changed, 47 insertions(+), 1 deletions(-)
+
+--- a/src/mcompatoms_p.h
++++ b/src/mcompatoms_p.h
+@@ -98,6 +98,7 @@ public:
+         _MEEGOTOUCH_MSTATUSBAR_GEOMETRY,
+         _MEEGOTOUCH_CUSTOM_REGION,
+         _MEEGOTOUCH_ORIENTATION_ANGLE,
++        _MEEGOTOUCH_SKIP_ANIMATIONS,
+ 
+ #ifdef WINDOW_DEBUG
+         _M_WM_INFO,
+--- a/src/mcompositemanager.cpp
++++ b/src/mcompositemanager.cpp
+@@ -197,6 +197,7 @@ MCompAtoms::MCompAtoms()
+         "_MEEGOTOUCH_MSTATUSBAR_GEOMETRY",
+         "_MEEGOTOUCH_CUSTOM_REGION",
+         "_MEEGOTOUCH_ORIENTATION_ANGLE",
++        "_MEEGOTOUCH_SKIP_ANIMATIONS",
+ 
+ #ifdef WINDOW_DEBUG
+         // custom properties for CITA
+--- a/src/mcompositewindow.cpp
++++ b/src/mcompositewindow.cpp
+@@ -172,6 +172,13 @@ void MCompositeWindow::iconify(const QRe
+         return;
+     }
+ 
++    if (pc->skipAnimations()) {
++        iconified = true;
++        beginAnimation();
++        finalizeState();
++        return;
++    }
++
+     if (window_status != MCompositeWindow::Closing)
+         window_status = MCompositeWindow::Minimizing;
+     
+@@ -299,6 +306,13 @@ void MCompositeWindow::updateIconGeometr
+ // TODO: have an option of disabling the animation
+ void MCompositeWindow::restore(const QRectF &icongeometry, bool defer)
+ {
++    if (pc->skipAnimations()) {
++        iconified = false;
++        beginAnimation();
++        finalizeState();
++        return;
++    }
++
+      // Custom restore handler
+     MCompositeManager *p = (MCompositeManager *) qApp;
+     QList<MCompositeManagerExtension*> evlist = p->d->m_extensions.values(MapNotify);
+@@ -414,6 +428,11 @@ void MCompositeWindow::closeWindowAnimat
+         return;
+     }
+     window_status = Closing; // animating, do not disturb
++
++    if (pc->skipAnimations()) {
++        finalizeState();
++        return;
++    }
+     
+     MCompositeManager *p = (MCompositeManager *) qApp;
+     bool defer = false;
+--- a/src/mwindowpropertycache.cpp
++++ b/src/mwindowpropertycache.cpp
+@@ -122,6 +122,7 @@ void MWindowPropertyCache::init()
+     parent_window = QX11Info::appRootWindow();
+     always_mapped = 0;
+     cannot_minimize = 0;
++    skip_animations = 0;
+     desktop_view = -1;
+     being_mapped = false;
+     dont_iconify = false;
+@@ -226,6 +227,9 @@ MWindowPropertyCache::MWindowPropertyCac
+                                 XCB_ATOM_CARDINAL));
+     addRequest(SLOT(wmName()),
+                requestProperty(MCompAtoms::WM_NAME, XCB_ATOM_STRING, 100));
++    addRequest(SLOT(skipAnimations()),
++               requestProperty(MCompAtoms::_MEEGOTOUCH_SKIP_ANIMATIONS,
++                                XCB_ATOM_CARDINAL));
+ 
+     // add any transients to the transients list
+     MCompositeManager *m = (MCompositeManager*)qApp;
+@@ -496,6 +500,24 @@ void MWindowPropertyCache::desktopView(b
+                                    XCB_ATOM_CARDINAL));
+ }
+ 
++int MWindowPropertyCache::skipAnimations()
++{
++    QLatin1String me(SLOT(skipAnimations()));
++    if (is_valid && requests[me]) {
++        xcb_get_property_cookie_t c = { requests[me] };
++        xcb_get_property_reply_t *r;
++        r = xcb_get_property_reply(xcb_conn, c, 0);
++        replyCollected(me);
++        skip_animations = 0;
++        if (r) {
++            if (xcb_get_property_value_length(r) == sizeof(CARD32))
++                skip_animations = *((CARD32*)xcb_get_property_value(r));
++            free(r);
++        }
++    }
++    return skip_animations;
++}
++
+ unsigned int MWindowPropertyCache::meegoStackingLayer()
+ {
+     QLatin1String me(SLOT(meegoStackingLayer()));
+--- a/src/mwindowpropertycache.h
++++ b/src/mwindowpropertycache.h
+@@ -186,6 +186,9 @@ public slots:
+     // WM_NAME
+     const QString &wmName();
+ 
++    // Returns value of _MEEGOTOUCH_SKIP_ANIMATIONS.
++    int skipAnimations();
++
+ public:
+     /*!
+      * Called on PropertyNotify for this window.
+@@ -247,7 +250,7 @@ private:
+     MCompAtoms::Type window_type;
+     Window window, parent_window;
+     int always_mapped, cannot_minimize, desktop_view;
+-    bool being_mapped, dont_iconify;
++    bool being_mapped, dont_iconify, skip_animations;
+     QRegion custom_region;
+     unsigned orientation_angle;
+     QRegion shape_region;

++++++ Take-the-new-transition-interface-into-use-in-MCompW.patch (new)
--- Take-the-new-transition-interface-into-use-in-MCompW.patch
+++ Take-the-new-transition-interface-into-use-in-MCompW.patch
+From 70179d0c783e315522889d69653521de7558be1d Mon Sep 17 00:00:00 2001
+From: Kalle Vahlman <kalle.vahlman at movial.com>
+Date: Tue, 28 Dec 2010 07:19:01 +0000
+Subject: [PATCH 4/4] Take the new transition interface into use in MCompWindowAnimator
+
+---
+ src/mcompositewindow.cpp    |    3 +-
+ src/mcompwindowanimator.cpp |   56 +++++++------------------------------------
+ src/mcompwindowanimator.h   |    6 ++++
+ 3 files changed, 16 insertions(+), 49 deletions(-)
+
+--- a/src/mcompositewindow.cpp
++++ b/src/mcompositewindow.cpp
+@@ -327,7 +327,7 @@ void MCompositeWindow::restore(const QRe
+         this->iconGeometry = fadeRect;
+     else
+         this->iconGeometry = icongeometry;
+-    setPos(iconGeometry.topLeft());
++
+     // horizontal and vert. scaling factors
+     qreal sx = iconGeometry.width() / boundingRect().width();
+     qreal sy = iconGeometry.height() / boundingRect().height();
+@@ -398,7 +398,6 @@ void MCompositeWindow::q_fadeIn()
+             return;
+     }
+     
+-    setPos(fadeRect.topLeft());
+     restore(fadeRect, false);
+ }
+ 
+--- a/src/mcompwindowanimator.cpp
++++ b/src/mcompwindowanimator.cpp
+@@ -22,16 +22,13 @@
+ #include "mcompositemanager.h"
+ #include "mcompositemanager_p.h"
+ 
+-static int Fps = 60;
++#include "manimatortransitionrotatein.h"
+ 
+-static qreal interpolate(qreal step, qreal x1, qreal x2)
+-{
+-    return ((x2 - x1) * step) + x1;
+-}
++static int Fps = 60;
+ 
+ MCompWindowAnimator::MCompWindowAnimator(MCompositeWindow *comp_win)
+     : QObject(comp_win),
+-      timer(200),
++      timer(400),
+       reversed(false),
+       deferred_animation(false)
+ {
+@@ -46,6 +43,8 @@ MCompWindowAnimator::MCompWindowAnimator
+     connect(&timer, SIGNAL(valueChanged(qreal)), SLOT(advanceFrame(qreal)));
+     connect(&timer, SIGNAL(finished()), SIGNAL(transitionDone()));
+     connect(&timer, SIGNAL(finished()), SLOT(resetState()));
++
++    trans = (MAnimatorTransitionInterface*) new MAnimatorTransitionRotateIn(this);
+ }
+ 
+ // restore original global state w/ animation
+@@ -73,31 +72,10 @@ void MCompWindowAnimator::restore()
+ // item transition
+ void MCompWindowAnimator::advanceFrame(qreal step)
+ {
+-#define OPAQUE 1.0
+-#define DIMMED 0.1
+-
+-    //item->setTransform(QTransform(anim.matrixAt(step)) );
+-    item->setTransform(matrix);
+-
+-    item->scale(anim.horizontalScaleAt(step),
+-                anim.verticalScaleAt(step));
+-    item->setPos(anim.posAt(step));
+-
+-    qreal opac_norm = interpolate(step, OPAQUE, DIMMED);
+-    qreal opac_rev = interpolate(step, DIMMED, OPAQUE);
+-    
+-    // TODO: move calculation to GPU to imrpove speed
+-    // TODO: Use QPropertyAnimation instead
+-    item->setDimmedEffect(false);
+-    item->setOpacity(!reversed ? opac_norm : opac_rev);
+-    MCompositeWindow* behind = item->behind();
+-    if (behind) {
+-        behind->setDimmedEffect(true);
+-        behind->setOpacity(!reversed ? opac_rev : opac_norm);
+-    }
+-    
+     qobject_cast<QGraphicsItem *>(item)->setVisible(true);
+ 
++    trans->advanceFrame(item, matrix, anim, timer, step, reversed);
++
+     MCompositeManager *p = (MCompositeManager *) qApp;
+     p->d->glwidget->update();
+ }
+@@ -123,24 +101,8 @@ void MCompWindowAnimator::translateScale
+ {
+     reversed = reverse;
+ 
+-    if (!reverse) {
+-        timer.setCurveShape(QTimeLine::EaseInCurve);
+-        
+-        anim.setScaleAt(0, fromSx, fromSy);
+-        anim.setScaleAt(1.0, toSx, toSy);
+-        anim.setPosAt(0, item->pos());
+-        anim.setPosAt(1.0, newPos);
+-    } else {
+-        timer.setCurveShape(QTimeLine::EaseOutCurve);
+-        
+-        if (item->transform().m22() == 1.0 && item->transform().m11() == 1.0)
+-            item->scale(toSx, toSy);
+-
+-        anim.setScaleAt(0, toSx, toSy);
+-        anim.setScaleAt(1.0, fromSx, fromSy);
+-        anim.setPosAt(0, item->pos());
+-        anim.setPosAt(1.0, newPos);
+-    }
++    trans->translateScale(item, matrix, anim, timer,
++                          fromSx, fromSy, toSx, toSy, newPos, reverse);
+ 
+     if (reverse)
+         item->setVisible(false);
+--- a/src/mcompwindowanimator.h
++++ b/src/mcompwindowanimator.h
+@@ -27,6 +27,7 @@
+ 
+ class QGraphicsItem;
+ class MCompositeWindow;
++class MAnimatorTransitionInterface;
+ 
+ /*!
+  * This class is responsible for complete control of the animation of
+@@ -111,6 +112,11 @@ private:
+     // reverse animation
+     bool reversed;
+     bool deferred_animation;
++
++    // Current transition
++    MAnimatorTransitionInterface *trans;
++
++    friend class MAnimatorTransition;
+ };
+ 
+ #endif

++++++ Use-QTransform-rather-than-the-deprecated-matrix-cla.patch (new)
--- Use-QTransform-rather-than-the-deprecated-matrix-cla.patch
+++ Use-QTransform-rather-than-the-deprecated-matrix-cla.patch
+From de314cc7b7f10723c30a37f66ae06b788a36a047 Mon Sep 17 00:00:00 2001
+From: Kalle Vahlman <kalle.vahlman at movial.com>
+Date: Tue, 22 Mar 2011 03:40:51 -0400
+Subject: [PATCH 1/4] Use QTransform rather than the deprecated matrix class in MCompositeScene
+
+---
+ src/mcompositescene.cpp |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+--- a/src/mcompositescene.cpp
++++ b/src/mcompositescene.cpp
+@@ -147,7 +147,7 @@ void MCompositeScene::drawItems(QPainter
+                 desktop_painted = true;
+             }
+             // TODO: paint only the intersected region (glScissor?)
+-            painter->setMatrix(cw->sceneMatrix(), true);
++            painter->setTransform(cw->sceneTransform(), true);
+             cw->paint(painter, &options[item_i], widget);
+             painter->restore();
+         }

++++++ XSync-after-un-redirecting-windows-in-EGL-MTexturePi.patch (new)
--- XSync-after-un-redirecting-windows-in-EGL-MTexturePi.patch
+++ XSync-after-un-redirecting-windows-in-EGL-MTexturePi.patch
+From 91060dae8c42d6b49621d2cc2e29871bda9f4860 Mon Sep 17 00:00:00 2001
+From: Kalle Vahlman <kalle.vahlman at movial.com>
+Date: Fri, 18 Mar 2011 10:10:59 -0400
+Subject: [PATCH] XSync() after (un)redirecting windows in EGL MTexturePixmapItem, like GLX version does
+
+---
+ src/mtexturepixmapitem_egl.cpp |    2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+--- a/src/mtexturepixmapitem_egl.cpp
++++ b/src/mtexturepixmapitem_egl.cpp
+@@ -207,6 +207,7 @@ void MTexturePixmapItem::enableDirectFbR
+     }
+     XCompositeUnredirectWindow(QX11Info::display(), window(),
+                                CompositeRedirectManual);
++    XSync(QX11Info::display(), FALSE);
+ }
+ 
+ void MTexturePixmapItem::enableRedirectedRendering()
+@@ -219,6 +220,7 @@ void MTexturePixmapItem::enableRedirecte
+     d->direct_fb_render = false;
+     XCompositeRedirectWindow(QX11Info::display(), window(),
+                              CompositeRedirectManual);
++    XSync(QX11Info::display(), FALSE);
+     saveBackingStore();
+     updateWindowPixmap();
+ }

++++++ decorator_removal.patch (new)
--- decorator_removal.patch
+++ decorator_removal.patch
+From 09fdf5793e6da9a5325b51fce3a6e8dc723e2f24 Mon Sep 17 00:00:00 2001
+From: Mika Yrjola <mika.yrjola at movial.com>
+Date: Thu, 17 Mar 2011 13:30:54 +0200
+Subject: [PATCH] Decorator removal for 0.8.5-1
+
+---
+ decorators/decorators.pro                         |   16 -
+ decorators/libdecorator/interface.xml             |   19 -
+ decorators/libdecorator/libdecorator.pro          |   27 -
+ decorators/libdecorator/mabstractappinterface.cpp |  118 ----
+ decorators/libdecorator/mabstractappinterface.h   |   97 ---
+ decorators/libdecorator/mabstractdecorator.cpp    |  155 -----
+ decorators/libdecorator/mabstractdecorator.h      |  160 -----
+ decorators/libdecorator/mdecorator_dbus.xml       |   20 -
+ decorators/libdecorator/mrmiclient.cpp            |  279 ---------
+ decorators/libdecorator/mrmiclient.h              |  124 ----
+ decorators/libdecorator/mrmiclient_p.h            |   74 ---
+ decorators/libdecorator/mrmiserver.cpp            |  323 ----------
+ decorators/libdecorator/mrmiserver.h              |   86 ---
+ decorators/libdecorator/mrmiserver_p.h            |   73 ---
+ decorators/mdecorator/main.cpp                    |   49 --
+ decorators/mdecorator/mdecorator.pro              |   17 -
+ decorators/mdecorator/mdecoratorwindow.cpp        |  671 ---------------------
+ decorators/mdecorator/mdecoratorwindow.h          |  107 ----
+ mcompositor.pro                                   |    7 +-
+ mcompositor/mcompositor.pro                       |    2 +-
+ src/mcompatoms_p.h                                |    3 -
+ src/mcompositemanager.cpp                         |  597 ++----------------
+ src/mcompositemanager.h                           |   17 +-
+ src/mcompositemanager_p.h                         |   12 +-
+ src/mcompositescene.cpp                           |   15 +-
+ src/mcompositewindow.cpp                          |   19 +-
+ src/mcompositewindow.h                            |   10 -
+ src/mdecoratorframe.cpp                           |  190 ------
+ src/mdecoratorframe.h                             |  118 ----
+ src/mwindowpropertycache.cpp                      |   22 -
+ src/mwindowpropertycache.h                        |    2 -
+ src/src.pro                                       |    8 +-
+ tests/appinterface/appinterface.pro               |   14 -
+ tests/appinterface/main.cpp                       |  159 -----
+ tests/tests.pro                                   |    3 +-
+ translations/recovery.ts                          |   27 -
+ translations/translations.pro                     |    4 +-
+ 38 files changed, 81 insertions(+), 3564 deletions(-)
+ delete mode 100644 decorators/decorators.pro
+ delete mode 100644 decorators/libdecorator/interface.xml
+ delete mode 100644 decorators/libdecorator/libdecorator.pro
+ delete mode 100644 decorators/libdecorator/mabstractappinterface.cpp
+ delete mode 100644 decorators/libdecorator/mabstractappinterface.h
+ delete mode 100644 decorators/libdecorator/mabstractdecorator.cpp
+ delete mode 100644 decorators/libdecorator/mabstractdecorator.h
+ delete mode 100644 decorators/libdecorator/mdecorator_dbus.xml
+ delete mode 100644 decorators/libdecorator/mrmiclient.cpp
+ delete mode 100644 decorators/libdecorator/mrmiclient.h
+ delete mode 100644 decorators/libdecorator/mrmiclient_p.h
+ delete mode 100644 decorators/libdecorator/mrmiserver.cpp
+ delete mode 100644 decorators/libdecorator/mrmiserver.h
+ delete mode 100644 decorators/libdecorator/mrmiserver_p.h
+ delete mode 100644 decorators/mdecorator/main.cpp
+ delete mode 100644 decorators/mdecorator/mdecorator.pro
+ delete mode 100644 decorators/mdecorator/mdecoratorwindow.cpp
+ delete mode 100644 decorators/mdecorator/mdecoratorwindow.h
+ delete mode 100644 src/mdecoratorframe.cpp
+ delete mode 100644 src/mdecoratorframe.h
+ delete mode 100644 tests/appinterface/appinterface.pro
+ delete mode 100644 tests/appinterface/main.cpp
+ delete mode 100644 translations/recovery.ts
+
+--- a/decorators/decorators.pro
++++ /dev/null
+@@ -1,16 +0,0 @@
+-TEMPLATE = subdirs
+-#temporary disable
+-CONFIG+=ordered
+-SUBDIRS += \
+-    sub_lib \
+-    sub_decorator \
+-
+-sub_lib.subdir=libdecorator
+-
+-sub_decorator.depends=sub_lib
+-sub_decorator.subdir=mdecorator
+-
+-
+-check.target = check 
+-check.CONFIG = recursive
+-QMAKE_EXTRA_TARGETS += check
+--- a/decorators/libdecorator/interface.xml
++++ /dev/null
+@@ -1,19 +0,0 @@
+- <!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
+-         "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
+- <node>
+-         <interface name="com.nokia.MDecorator">
+-                 <method name="setActions">
+-                       <arg type="a(ssbbuay)" name="actions" direction="in" />
+-                       <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="IPCActionList"/>
+-                       <arg type="u" name="window" direction="in" />
+-                 </method>
+-                 <signal name="triggered">
+-                       <arg type="s" name="uuid" direction="out" />
+-                       <arg type="b" name="checked" direction="out" />
+-                 </signal>
+-                 <signal name="toggled">
+-                       <arg type="s" name="uuid" direction="out" />
+-                       <arg type="b" name="checked" direction="out" />
+-                 </signal>
+-         </interface>
+- </node>
+--- a/decorators/libdecorator/libdecorator.pro
++++ /dev/null
+@@ -1,27 +0,0 @@
+-include(../../meegotouch_config.pri)
+-TEMPLATE = lib
+-DEPENDPATH += .
+-INCLUDEPATH += .
+-CONFIG += dll release
+-QT += opengl network dbus
+-TARGET = decorator
+-
+-DBUS_ADAPTORS = mdecorator_dbus.xml
+-DBUS_INTERFACES = mdecorator_dbus.xml
+-QMAKE_QDBUSXML2CPP = $$[QT_INSTALL_BINS]/qdbusxml2cpp -i mabstractappinterface.h \$(if $(filter mdecorator_dbus_interface.%,\$@),-c MDecoratorInterface)
+-
+-publicHeaders.files = mabstractdecorator.h mrmiclient.h mrmiserver.h \
+-		      mabstractappinterface.h mdecorator_dbus_interface.h
+-HEADERS += $${publicHeaders.files} mrmiclient_p.h mrmiserver_p.h
+-SOURCES += mabstractdecorator.cpp mrmiclient.cpp mrmiserver.cpp \
+-           mabstractappinterface.cpp
+-PRE_TARGETDEPS += mdecorator_dbus_interface.h
+-
+-publicHeaders.path = $$M_INSTALL_HEADERS/libdecorator
+-publicHeaders.CONFIG += no_check_exist
+-INSTALLS += publicHeaders
+-target.path = /usr/lib
+-INSTALLS += target
+-QMAKE_EXTRA_TARGETS += check
+-check.depends = $$TARGET
+-check.commands = $$system(true)
+--- a/decorators/libdecorator/mabstractappinterface.cpp
++++ /dev/null
+@@ -1,118 +0,0 @@
+-/***************************************************************************
+-**
+-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+-** All rights reserved.
+-** Contact: Nokia Corporation (directui at nokia.com)
+-**
+-** This file is part of duicompositor.
+-**
+-** If you have questions regarding the use of this file, please contact
+-** Nokia at directui at nokia.com.
+-**
+-** This library is free software; you can redistribute it and/or
+-** modify it under the terms of the GNU Lesser General Public
+-** License version 2.1 as published by the Free Software Foundation
+-** and appearing in the file LICENSE.LGPL included in the packaging
+-** of this file.
+-**
+-****************************************************************************/
+-
+-#include <QtDebug>
+-
+-#include "mabstractappinterface.h"
+-#include "mdecorator_dbus_adaptor.h"
+-#include "mabstractdecorator.h"
+-#include <mrmiserver.h>
+-#include <mrmiclient.h>
+-#include <QX11Info>
+-#include <QRect>
+-#include <QRegion>
+-#include <QDesktopWidget>
+-#include <QApplication>
+-#include <QMenu>
+-#include <QPixmap>
+-
+-
+-QDBusArgument &operator<<(QDBusArgument &argument, const MDecoratorIPCAction &action)
+-{
+-    argument.beginStructure();
+-    argument << action.m_key.toString();
+-    argument << action.m_text;
+-    argument << action.m_checkable;
+-    argument << action.m_checked;
+-    argument << (uint)action.m_type;
+-
+-    if (action.m_icon.isNull()) {
+-        argument << QByteArray();
+-    } else {
+-        if (action.m_icon.pixmap(48,48).isNull())
+-            qCritical() << "MDecorator: Pixmap creation failed";
+-
+-        QImage image = action.m_icon.pixmap(48,48).toImage();
+-        if (image.isNull())
+-            qCritical() << "MDecorator: Icon Conversion failed";
+-        QByteArray data;
+-        QBuffer buffer(&data);
+-        buffer.open(QIODevice::WriteOnly);
(4246 more lines skipped)

++++++ do_not_use_TFP_when_EGL_KHR_image_pixmap_extension_is_missing_bmc11128.patch
--- do_not_use_TFP_when_EGL_KHR_image_pixmap_extension_is_missing_bmc11128.patch
+++ do_not_use_TFP_when_EGL_KHR_image_pixmap_extension_is_missing_bmc11128.patch
@@ -2,7 +2,7 @@
 BMC: 11128
 --- a/src/mtexturepixmapitem_egl.cpp
 +++ b/src/mtexturepixmapitem_egl.cpp
-@@ -91,7 +91,7 @@ public:
+@@ -94,7 +94,7 @@ public:
  
          QString exts = QLatin1String(eglQueryString(dpy, EGL_EXTENSIONS));
          if ((exts.contains("EGL_KHR_image") &&

++++++ meegotouch-compositor.yaml
--- meegotouch-compositor.yaml
+++ meegotouch-compositor.yaml
@@ -15,6 +15,14 @@
     - BMC_13622_statusbar_2.patch
     - BMC_14207_double_xterm_thumbnail.patch
     - no_mce.patch
+    - decorator_removal.patch
+    - Fix-flashing-in-transition-starts.patch
+    - Introduce-_MEEGOTOUCH_SKIP_ANIMATIONS-window-propert.patch
+    - XSync-after-un-redirecting-windows-in-EGL-MTexturePi.patch
+    - Use-QTransform-rather-than-the-deprecated-matrix-cla.patch
+    - Add-transition-interface-to-be-used-in-MCompWindowAn.patch
+    - Introduce-Rotate-in-transition.patch
+    - Take-the-new-transition-interface-into-use-in-MCompW.patch
 Description: |
     This package contains the Direct UI compositing window manager.
 PkgConfigBR:
@@ -43,8 +51,6 @@
     - mcompositor < 0.4.6
 Configure: none
 Builder: qmake
-ExtraSources:
-    - mdecorator.desktop;%{_sysconfdir}/xdg/autostart
 SubPackages:
     - Name: devel
       Summary: Development files for building mcompositor decorators

++++++ deleted files:
--- mdecorator.desktop



More information about the MeeGo-commits mailing list