[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