[SCM] plasma-framework packaging branch, master, updated. debian/5.28.0-1-12-g9259880

Maximiliano Curia maxy at moszumanska.debian.org
Sat Apr 8 15:16:05 UTC 2017


Gitweb-URL: http://git.debian.org/?p=pkg-kde/frameworks/plasma-framework.git;a=commitdiff;h=8958f04

The following commit has been merged in the master branch:
commit 8958f04b571db6024546a775571d6fc6490f28e5
Author: Maximiliano Curia <maxy at gnuservers.com.ar>
Date:   Sat Apr 8 11:05:51 2017 +0200

    Pick "Fix #374127 misplacement of popups from dock wins" (6aedda9)
    
    Fix for "If a Dock window uses a mask then the popups occured from it
    are placed far from the item that triggered them."
    Add upstream patch as:
     Fix-374127-misplacement-of-popups-from-dock-wins.patch
    This fixes KDE#374127
    
    Gbp-Dch: Full
---
 ...127-misplacement-of-popups-from-dock-wins.patch | 101 +++++++++++++++++++++
 debian/patches/series                              |   1 +
 2 files changed, 102 insertions(+)

diff --git a/debian/patches/Fix-374127-misplacement-of-popups-from-dock-wins.patch b/debian/patches/Fix-374127-misplacement-of-popups-from-dock-wins.patch
new file mode 100644
index 0000000..6afc3d5
--- /dev/null
+++ b/debian/patches/Fix-374127-misplacement-of-popups-from-dock-wins.patch
@@ -0,0 +1,101 @@
+From: Michail Vourlakos <mvourlakos at gmail.com>
+Date: Sun, 25 Dec 2016 13:15:35 +0200
+Subject: Fix #374127 misplacement of popups from dock wins
+
+--the dialogs shown from dock type windows when
+the dock uses masking are placed far from the
+the element that triggered them. This patch
+fixes this bug and provide also an auto test.
+---
+ autotests/dialognativetest.cpp | 19 +++++++++++++++++++
+ autotests/dialognativetest.h   |  2 ++
+ src/plasmaquick/dialog.cpp     |  3 ++-
+ 3 files changed, 23 insertions(+), 1 deletion(-)
+
+diff --git a/autotests/dialognativetest.cpp b/autotests/dialognativetest.cpp
+index 9c9646c06..6378e1e6b 100644
+--- a/autotests/dialognativetest.cpp
++++ b/autotests/dialognativetest.cpp
+@@ -38,14 +38,24 @@ void DialogNativeTest::initTestCase()
+     m_panel2->setGeometry(100, 0, 50, 50);
+     m_panel2->setFlags(Qt::FramelessWindowHint|Qt::WindowDoesNotAcceptFocus);
+ 
++    m_panel3 = new QQuickView;
++    m_panel3->setGeometry(200, 0, 50, 50);
++    m_panel3->setFlags(Qt::FramelessWindowHint|Qt::WindowDoesNotAcceptFocus);
++
+     m_content = new QQuickItem;
+     m_content->setWidth(100);
+     m_content->setHeight(100);
+     m_dialog->setMainItem(m_content);
+ 
++    m_content2 = new QQuickItem(m_panel3->contentItem());
++    m_content2->setWidth(50);
++    m_content2->setHeight(25);
++
+     m_panel->show();
+     m_panel2->show();
++    m_panel3->show();
+     KWindowSystem::setType(m_panel->winId(), NET::Dock);
++    KWindowSystem::setType(m_panel3->winId(), NET::Dock);
+     m_dialog->setVisualParent(m_panel->contentItem());
+     m_dialog->show();
+ }
+@@ -55,6 +65,7 @@ void DialogNativeTest::cleanupTestCase()
+     delete m_dialog;
+     delete m_panel;
+     delete m_panel2;
++    delete m_panel3;
+ 
+     m_cacheDir.removeRecursively();
+ }
+@@ -68,6 +79,9 @@ void DialogNativeTest::size()
+     QCOMPARE(m_dialog->width(), 112);
+     QCOMPARE(m_dialog->height(), 112);
+ 
++    QCOMPARE(m_content2->width(), (qreal)50);
++    QCOMPARE(m_content2->height(), (qreal)25);
++
+     QCOMPARE(m_dialog->margins()->property("left").value<qreal>(), (qreal)6.0);
+     QCOMPARE(m_dialog->margins()->property("top").value<qreal>(), (qreal)6.0);
+     QCOMPARE(m_dialog->margins()->property("right").value<qreal>(), (qreal)6.0);
+@@ -85,6 +99,11 @@ void DialogNativeTest::position()
+     m_dialog->setVisualParent(m_panel2->contentItem());
+     QCOMPARE(m_dialog->x(), 69);
+     QCOMPARE(m_dialog->y(), 49);
++
++    m_panel3->setMask(QRect(0, 0, 50, 25));
++    m_dialog->setVisualParent(m_content2);
++    QCOMPARE(m_dialog->x(), 169);
++    QCOMPARE(m_dialog->y(), 24);
+ #endif
+ }
+ 
+diff --git a/autotests/dialognativetest.h b/autotests/dialognativetest.h
+index d696cad80..780bc8eec 100644
+--- a/autotests/dialognativetest.h
++++ b/autotests/dialognativetest.h
+@@ -42,7 +42,9 @@ private Q_SLOTS:
+ private:
+     QQuickView *m_panel;
+     QQuickView *m_panel2;
++    QQuickView *m_panel3;
+     QQuickItem *m_content;
++    QQuickItem *m_content2;
+     PlasmaQuick::Dialog *m_dialog;
+     QDir m_cacheDir;
+ };
+diff --git a/src/plasmaquick/dialog.cpp b/src/plasmaquick/dialog.cpp
+index 6e2041aa7..7a97efe4e 100644
+--- a/src/plasmaquick/dialog.cpp
++++ b/src/plasmaquick/dialog.cpp
+@@ -873,7 +873,8 @@ QPoint Dialog::popupPosition(QQuickItem *item, const QSize &size)
+ 
+     //if the item is in a dock or in a window that ignores WM we want to position the popups outside of the dock
+     const KWindowInfo winInfo = KWindowSystem::windowInfo(item->window()->winId(), NET::WMWindowType);
+-    const bool outsideParentWindow = (winInfo.windowType(NET::AllTypesMask) == NET::Dock) || (item->window()->flags() & Qt::X11BypassWindowManagerHint);
++    const bool outsideParentWindow = ((winInfo.windowType(NET::AllTypesMask) == NET::Dock) || (item->window()->flags() & Qt::X11BypassWindowManagerHint))
++            && item->window()->mask().isNull();
+ 
+     QRect parentGeometryBounds;
+     if (outsideParentWindow) {
diff --git a/debian/patches/series b/debian/patches/series
index ffbfb19..ab0aa30 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
 Fix-logic-for-arrow-handling-in-RTL-locales.patch
 Emit-toolTipMainTextChanged-if-it-changes-in-response-to-.patch
 consider-an-empty-panel-always-applets-loaded.patch
+Fix-374127-misplacement-of-popups-from-dock-wins.patch

-- 
plasma-framework packaging



More information about the pkg-kde-commits mailing list