Hello community,

here is the log from the commit of package kwin5 for openSUSE:Factory checked 
in at 2015-01-30 15:07:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kwin5 (Old)
 and      /work/SRC/openSUSE:Factory/.kwin5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kwin5"

Changes:
--------
--- /work/SRC/openSUSE:Factory/kwin5/kwin5.changes      2015-01-29 
13:16:54.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kwin5.new/kwin5.changes 2015-01-30 
15:08:00.000000000 +0100
@@ -1,0 +2,9 @@
+Thu Jan 29 20:07:07 UTC 2015 - [email protected]
+
+- Added patches from upstream:
+  0001-Trigger-rebuilding-of-quads-after-creating-a-new-Dec.patch,
+  0001-use-xembed-for-the-qml-view-of-window-decorations-mo.patch (kde#341971),
+  0002-Avoid-deleting-an-engine-whilst-components-from-our-.patch and
+  0003-Disable-libinput-integration-if-0.8-is-found.patch (kde#342893)
+
+-------------------------------------------------------------------

New:
----
  0001-Trigger-rebuilding-of-quads-after-creating-a-new-Dec.patch
  0001-use-xembed-for-the-qml-view-of-window-decorations-mo.patch
  0002-Avoid-deleting-an-engine-whilst-components-from-our-.patch
  0003-Disable-libinput-integration-if-0.8-is-found.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kwin5.spec ++++++
--- /var/tmp/diff_new_pack.K1WziT/_old  2015-01-30 15:08:01.000000000 +0100
+++ /var/tmp/diff_new_pack.K1WziT/_new  2015-01-30 15:08:01.000000000 +0100
@@ -25,6 +25,14 @@
 Url:            http://www.kde.org
 Source:         kwin-%{version}.tar.xz
 Source99:       %{name}-rpmlintrc
+# PATCH-FIX-UPSTREAM 
0001-Trigger-rebuilding-of-quads-after-creating-a-new-Dec.patch
+Patch0:         0001-Trigger-rebuilding-of-quads-after-creating-a-new-Dec.patch
+# PATCH-FIX-UPSTREAM 
0001-use-xembed-for-the-qml-view-of-window-decorations-mo.patch
+Patch1:         0001-use-xembed-for-the-qml-view-of-window-decorations-mo.patch
+# PATCH-FIX-UPSTREAM 
0002-Avoid-deleting-an-engine-whilst-components-from-our-.patch
+Patch2:         0002-Avoid-deleting-an-engine-whilst-components-from-our-.patch
+# PATCH-FIX-UPSTREAM 0003-Disable-libinput-integration-if-0.8-is-found.patch
+Patch3:         0003-Disable-libinput-integration-if-0.8-is-found.patch
 BuildRequires:  extra-cmake-modules >= 0.0.11
 BuildRequires:  kactivities5-devel >= 5.6.0
 BuildRequires:  kcmutils-devel >= 5.6.0
@@ -105,6 +113,10 @@
 %lang_package
 %prep
 %setup -q -n kwin-%{version}
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
 
 %build
   %cmake_kf5 -d build -- -DCMAKE_INSTALL_LOCALEDIR=share/locale/kf5

++++++ 0001-Trigger-rebuilding-of-quads-after-creating-a-new-Dec.patch ++++++
>From 7508cd49e032f3784255dcf2177b40f31cc042ed Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= <[email protected]>
Date: Tue, 27 Jan 2015 11:01:22 +0100
Subject: [PATCH 1/1] Trigger rebuilding of quads after creating a new
 DecorationShadow

If there were already a shadow, the quads are rebuild, but not if
we created a new shadow. This is not a problem if the shadow exists
before the quads are built for the first time (e.g. when managing
the window), but if the shadow is created later on the quads are
incorrect and the shadow doesn't get rendered at all. This happens
for example with Aurorae based decoration themes, where the creation
of the first shadow is delayed into the next event cycle.
---
 shadow.cpp | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/shadow.cpp b/shadow.cpp
index 
4936a26c87c4d45a9efe0e2f9e038f63c1bbd556..9581290b102a818e61c9b6190995199bac6695ba
 100644
--- a/shadow.cpp
+++ b/shadow.cpp
@@ -56,6 +56,11 @@ Shadow *Shadow::createShadow(Toplevel *toplevel)
         if (toplevel->effectWindow() && 
toplevel->effectWindow()->sceneWindow()) {
             toplevel->effectWindow()->sceneWindow()->updateShadow(shadow);
         }
+        if (shadow->hasDecorationShadow()) {
+            if (toplevel->effectWindow()) {
+                toplevel->effectWindow()->buildQuads(true);
+            }
+        }
     }
     return shadow;
 }
-- 
2.2.2

++++++ 0001-use-xembed-for-the-qml-view-of-window-decorations-mo.patch ++++++
>From 63885cc5b3f2922441dac0af96ed001b737e78ea Mon Sep 17 00:00:00 2001
From: Marco Martin <[email protected]>
Date: Wed, 28 Jan 2015 09:58:47 +0100
Subject: [PATCH 1/3] use xembed for the qml view of window decorations modul

the only way to ensure the view won't randomly become black
(probably QQuickwidget won't be fixed in qt anytime soon or
ever in 5.x lifetime due to how architecturally is)

basically systemsettings has no control of what gets loaded in,
if one other kcm will call winId(), this one will break.

BUG:341971
---
 kcmkwin/kwindecoration/kcm.cpp      | 40 ++++++++++++++++++++-----------------
 kcmkwin/kwindecoration/kcm.h        |  2 ++
 kcmkwin/kwindecoration/kcm.ui       |  5 +----
 kcmkwin/kwindecoration/qml/main.qml | 18 ++++++++++-------
 4 files changed, 36 insertions(+), 29 deletions(-)

diff --git a/kcmkwin/kwindecoration/kcm.cpp b/kcmkwin/kwindecoration/kcm.cpp
index 
c6b83b6c7ed0163447cec17b3acd2342ddab3134..cde534d57f5e47f622af0591375487b02146263a
 100644
--- a/kcmkwin/kwindecoration/kcm.cpp
+++ b/kcmkwin/kwindecoration/kcm.cpp
@@ -36,6 +36,7 @@
 #include <QQmlContext>
 #include <QQmlEngine>
 #include <QQuickItem>
+#include <QQuickView>
 #include <QSortFilterProxyModel>
 #include <QStandardPaths>
 #include <QVBoxLayout>
@@ -77,21 +78,26 @@ ConfigurationModule::ConfigurationModule(QWidget *parent, 
const QVariantList &ar
     m_proxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
     connect(m_ui->filter, &QLineEdit::textChanged, m_proxyModel, 
&QSortFilterProxyModel::setFilterFixedString);
 
+    m_quickView = new QQuickView(0);
     KDeclarative::KDeclarative kdeclarative;
-    kdeclarative.setDeclarativeEngine(m_ui->view->engine());
+    kdeclarative.setDeclarativeEngine(m_quickView->engine());
     kdeclarative.setTranslationDomain(QStringLiteral(TRANSLATION_DOMAIN));
     kdeclarative.setupBindings();
 
     qmlRegisterType<QAbstractItemModel>();
-    
m_ui->view->rootContext()->setContextProperty(QStringLiteral("decorationsModel"),
 m_proxyModel);
+    QWidget *widget = QWidget::createWindowContainer(m_quickView, this);
+    QVBoxLayout* layout = new QVBoxLayout(m_ui->view);
+    layout->addWidget(widget);
+
+    
m_quickView->rootContext()->setContextProperty(QStringLiteral("decorationsModel"),
 m_proxyModel);
     updateColors();
-    m_ui->view->rootContext()->setContextProperty("_borderSizesIndex", 3); // 
3 is normal
-    m_ui->view->rootContext()->setContextProperty("configurationModule", this);
-    m_ui->view->rootContext()->setContextProperty("titleFont", 
QFontDatabase::systemFont(QFontDatabase::TitleFont));
-    m_ui->view->setResizeMode(QQuickWidget::SizeRootObjectToView);
-    
m_ui->view->setSource(QUrl::fromLocalFile(QStandardPaths::locate(QStandardPaths::GenericDataLocation,
 QStringLiteral("kwin/kcm_kwindecoration/main.qml"))));
-    if (m_ui->view->status() == QQuickWidget::Ready) {
-        auto listView = 
m_ui->view->rootObject()->findChild<QQuickItem*>("listView");
+    m_quickView->rootContext()->setContextProperty("_borderSizesIndex", 3); // 
3 is normal
+    m_quickView->rootContext()->setContextProperty("configurationModule", 
this);
+    m_quickView->rootContext()->setContextProperty("titleFont", 
QFontDatabase::systemFont(QFontDatabase::TitleFont));
+    m_quickView->setResizeMode(QQuickView::SizeRootObjectToView);
+    
m_quickView->setSource(QUrl::fromLocalFile(QStandardPaths::locate(QStandardPaths::GenericDataLocation,
 QStringLiteral("kwin/kcm_kwindecoration/main.qml"))));
+    if (m_quickView->status() == QQuickView::Ready) {
+        auto listView = 
m_quickView->rootObject()->findChild<QQuickItem*>("listView");
         if (listView) {
             connect(listView, SIGNAL(currentIndexChanged()), this, 
SLOT(changed()));
         }
@@ -122,7 +128,7 @@ ConfigurationModule::ConfigurationModule(QWidget *parent, 
const QVariantList &ar
     );
     connect(m_ui->borderSizesCombo, static_cast<void 
(QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
             this, [this] (int index) {
-            auto listView = 
m_ui->view->rootObject()->findChild<QQuickItem*>("listView");
+            auto listView = 
m_quickView->rootObject()->findChild<QQuickItem*>("listView");
             if (listView) {
                 listView->setProperty("borderSizesIndex", index);
             }
@@ -265,7 +271,7 @@ void ConfigurationModule::load()
     const QString plugin = config.readEntry("library", s_defaultPlugin);
     const QString theme = config.readEntry("theme", QString());
     const QModelIndex index = 
m_proxyModel->mapFromSource(m_model->findDecoration(plugin, theme));
-    if (auto listView = 
m_ui->view->rootObject()->findChild<QQuickItem*>("listView")) {
+    if (auto listView = 
m_quickView->rootObject()->findChild<QQuickItem*>("listView")) {
         listView->setProperty("currentIndex", index.isValid() ? index.row() : 
-1);
     }
     
m_ui->closeWindowsDoubleClick->setChecked(config.readEntry("CloseOnDoubleClickOnMenu",
 false));
@@ -305,7 +311,7 @@ void ConfigurationModule::save()
     KConfigGroup config = 
KSharedConfig::openConfig("kwinrc")->group(s_pluginName);
     config.writeEntry("CloseOnDoubleClickOnMenu", 
m_ui->closeWindowsDoubleClick->isChecked());
     config.writeEntry("BorderSize", 
sizeToString(m_ui->borderSizesCombo->currentData().value<BorderSize>()));
-    if (auto listView = 
m_ui->view->rootObject()->findChild<QQuickItem*>("listView")) {
+    if (auto listView = 
m_quickView->rootObject()->findChild<QQuickItem*>("listView")) {
         const int currentIndex = listView->property("currentIndex").toInt();
         if (currentIndex != -1) {
             const QModelIndex index = m_proxyModel->index(currentIndex, 0);
@@ -333,7 +339,7 @@ void ConfigurationModule::save()
 
 void ConfigurationModule::defaults()
 {
-    if (auto listView = 
m_ui->view->rootObject()->findChild<QQuickItem*>("listView")) {
+    if (auto listView = 
m_quickView->rootObject()->findChild<QQuickItem*>("listView")) {
         const QModelIndex index = 
m_proxyModel->mapFromSource(m_model->findDecoration(s_defaultPlugin));
         listView->setProperty("currentIndex", index.isValid() ? index.row() : 
-1);
     }
@@ -346,7 +352,7 @@ void ConfigurationModule::showKNS(const QString &config)
 {
     QPointer<KNS3::DownloadDialog> downloadDialog = new 
KNS3::DownloadDialog(config, this);
     if (downloadDialog->exec() == QDialog::Accepted && 
!downloadDialog->changedEntries().isEmpty()) {
-        auto listView = 
m_ui->view->rootObject()->findChild<QQuickItem*>("listView");
+        auto listView = 
m_quickView->rootObject()->findChild<QQuickItem*>("listView");
         QString selectedPluginName;
         QString selectedThemeName;
         if (listView) {
@@ -396,10 +402,8 @@ bool ConfigurationModule::eventFilter(QObject *watched, 
QEvent *e)
 
 void ConfigurationModule::updateColors()
 {
-#if (QT_VERSION >= QT_VERSION_CHECK(5, 4, 0))
-    m_ui->view->setClearColor(m_ui->view->palette().color(QPalette::Window));
-#endif
-    m_ui->view->rootContext()->setContextProperty("highlightColor", 
QPalette().color(QPalette::Highlight));
+    m_quickView->rootContext()->setContextProperty("backgroundColor", 
QPalette().color(QPalette::Window));
+    m_quickView->rootContext()->setContextProperty("highlightColor", 
QPalette().color(QPalette::Highlight));
 }
 
 }
diff --git a/kcmkwin/kwindecoration/kcm.h b/kcmkwin/kwindecoration/kcm.h
index 
6133719dfbb48d147c1e275e978701f3ba3cc9e6..1d7ee73784f175afd509bde5c9423ed9515dd01d
 100644
--- a/kcmkwin/kwindecoration/kcm.h
+++ b/kcmkwin/kwindecoration/kcm.h
@@ -25,6 +25,7 @@
 #include <QAbstractItemModel>
 
 class QSortFilterProxyModel;
+class QQuickView;
 
 namespace KDecoration2
 {
@@ -73,6 +74,7 @@ private:
     DecorationsModel *m_model;
     QSortFilterProxyModel *m_proxyModel;
     ConfigurationForm *m_ui;
+    QQuickView *m_quickView;
     Preview::ButtonsModel *m_leftButtons;
     Preview::ButtonsModel *m_rightButtons;
     Preview::ButtonsModel *m_availableButtons;
diff --git a/kcmkwin/kwindecoration/kcm.ui b/kcmkwin/kwindecoration/kcm.ui
index 
3b4bca71fa59c0788b6ea4110bfdec9956e92e05..c26cd862ec435dc5bbf7760653a852e275fd6ffe
 100644
--- a/kcmkwin/kwindecoration/kcm.ui
+++ b/kcmkwin/kwindecoration/kcm.ui
@@ -39,16 +39,13 @@
     </layout>
    </item>
    <item>
-    <widget class="QQuickWidget" name="view">
+    <widget class="QWidget" name="view">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <property name="resizeMode">
-      <enum>QQuickWidget::SizeRootObjectToView</enum>
-     </property>
     </widget>
    </item>
    <item>
diff --git a/kcmkwin/kwindecoration/qml/main.qml 
b/kcmkwin/kwindecoration/qml/main.qml
index 
ac8ca3fb19fe850976d0d85c9f5abc6ab8064be9..4d8bcf8c98f238676e9128da20f4969980bf143c
 100644
--- a/kcmkwin/kwindecoration/qml/main.qml
+++ b/kcmkwin/kwindecoration/qml/main.qml
@@ -21,12 +21,16 @@ import QtQuick 2.1
 import QtQuick.Controls 1.2
 import QtQuick.Layouts 1.1
 
-ColumnLayout {
-    Previews {
-        Layout.fillWidth: true
-        Layout.fillHeight: true
-    }
-    Buttons {
-        Layout.fillWidth: true
+Rectangle {
+    color: backgroundColor
+    ColumnLayout {
+        anchors.fill: parent
+        Previews {
+            Layout.fillWidth: true
+            Layout.fillHeight: true
+        }
+        Buttons {
+            Layout.fillWidth: true
+        }
     }
 }
-- 
2.2.2

++++++ 0002-Avoid-deleting-an-engine-whilst-components-from-our-.patch ++++++
>From b62bf432366228f4ab291cc2199670ba52742548 Mon Sep 17 00:00:00 2001
From: David Edmundson <[email protected]>
Date: Wed, 28 Jan 2015 14:12:25 +0100
Subject: [PATCH 2/3] Avoid deleting an engine whilst components from our
 engine are still in use

Otherwise it can lead to crashes

Reviewed-by: Martin G
---
 kcmkwin/kwindecoration/declarative-plugin/previewitem.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/kcmkwin/kwindecoration/declarative-plugin/previewitem.cpp 
b/kcmkwin/kwindecoration/declarative-plugin/previewitem.cpp
index 
ac981748d2636d696644d3902b864994645304b2..a77261a5422619554bf0c2e6d77562c5e89d996d
 100644
--- a/kcmkwin/kwindecoration/declarative-plugin/previewitem.cpp
+++ b/kcmkwin/kwindecoration/declarative-plugin/previewitem.cpp
@@ -53,6 +53,7 @@ PreviewItem::PreviewItem(QQuickItem *parent)
 
 PreviewItem::~PreviewItem()
 {
+    m_decoration->deleteLater();
     if (m_bridge){
         m_bridge->unregisterPreviewItem(this);
     }
@@ -74,7 +75,7 @@ void PreviewItem::createDecoration()
     if (m_bridge.isNull() || m_settings.isNull() || m_decoration) {
         return;
     }
-    m_decoration = m_bridge->createDecoration(this);
+    m_decoration = m_bridge->createDecoration(0);
     if (!m_decoration) {
         return;
     }
-- 
2.2.2

++++++ 0003-Disable-libinput-integration-if-0.8-is-found.patch ++++++
>From a93a2ab1918630c6d571b5a24379c15a0458d1fa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= <[email protected]>
Date: Wed, 28 Jan 2015 16:20:57 +0100
Subject: [PATCH 3/3] Disable libinput integration if >= 0.8 is found

libinput 0.8 is incompatible causing the build to fail. As we are in
dependency freeze the only option is to disable the build.

BUG: 342893
FIXED-IN: 5.2.1
---
 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 
550ef5760a5bd8bf8f27449a8ebfc4f9ff94492c..8d9c59325d552d905f56e485b1cdacc133a948a9
 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -145,7 +145,7 @@ set_package_properties(UDev PROPERTIES  URL 
"http://www.freedesktop.org/software
                                         PURPOSE "Required for input handling 
on Wayland."
                         )
 set(HAVE_INPUT FALSE)
-if (Libinput_FOUND AND UDEV_FOUND)
+if (Libinput_FOUND AND UDEV_FOUND AND Libinput_VERSION VERSION_LESS 0.8)
     set(HAVE_INPUT TRUE)
 endif()
 
-- 
2.2.2

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to