kde-frameworks/plasma: Fix distance calc between dialog/parent applet

KDE-bug: https://bugs.kde.org/show_bug.cgi?id=464201
KDE-bug: https://bugs.kde.org/show_bug.cgi?id=464513

Bug: https://bugs.gentoo.org/891927
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
This commit is contained in:
Andreas Sturmlechner 2023-02-01 20:42:54 +01:00
parent 9e268e67b7
commit ef23a0fa6a
No known key found for this signature in database
GPG Key ID: 14644BCDD1535109
2 changed files with 119 additions and 0 deletions

View File

@ -0,0 +1,44 @@
From 1e0042c750756d0963d11d125978f47ea830d495 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niccol=C3=B2=20Venerandi?= <niccolo@venerandi.com>
Date: Tue, 31 Jan 2023 20:25:06 +0000
Subject: [PATCH] Dialog: Fix calculation of distance between dialog and parent
applet
`ParentRect` is not using the same coordinate system as `dialogPos` and `avail`,
which could result in incorrect placement of dialogs when you have e.g. multiple
monitors or a non-maximized panel. This replaces `ParentRect` with `dialogPos` so
the coordinate systems remain in sync.
BUG:464201
BUG:464513
FIXED-IN: 5.103
(cherry picked from commit eda6caabcffff484544af8949d0ca0a3ea3ce333)
---
src/plasmaquick/dialog.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/plasmaquick/dialog.cpp b/src/plasmaquick/dialog.cpp
index 786d7ebe2..bdbdd028b 100644
--- a/src/plasmaquick/dialog.cpp
+++ b/src/plasmaquick/dialog.cpp
@@ -1249,13 +1249,13 @@ QPoint Dialog::popupPosition(QQuickItem *item, const QSize &size)
switch (d->location) {
case Plasma::Types::TopEdge:
case Plasma::Types::BottomEdge:
- if (qAbs(parentRect.center().x() - avail.center().x() ) < size.width() / 2 - parentRect.width() / 3) {
+ if (qAbs(dialogPos.x() + size.width() / 2 - avail.center().x() ) < size.width() / 2 - parentRect.width() / 3) {
dialogPos.setX(avail.center().x() - size.width() / 2);
}
break;
case Plasma::Types::LeftEdge:
case Plasma::Types::RightEdge:
- if (qAbs(parentRect.center().y() - avail.center().y() ) < size.height() / 2 - parentRect.height() / 3) {
+ if (qAbs(dialogPos.y() + size.height() / 2 - avail.center().y() ) < size.height() / 2 - parentRect.height() / 3) {
dialogPos.setY(avail.center().y() - size.height() / 2);
}
break;
--
GitLab

View File

@ -0,0 +1,75 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
KDE_ORG_NAME="${PN}-framework"
PVCUT=$(ver_cut 1-2)
QTMIN=5.15.5
VIRTUALX_REQUIRED="test"
inherit ecm frameworks.kde.org
DESCRIPTION="Plasma framework"
LICENSE="LGPL-2+"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
IUSE="gles2-only man wayland"
RESTRICT="test"
# kde-frameworks/kwindowsystem[X]: Unconditional use of KX11Extras
RDEPEND="
>=dev-qt/qtdbus-${QTMIN}:5
>=dev-qt/qtdeclarative-${QTMIN}:5
>=dev-qt/qtgui-${QTMIN}:5[gles2-only=,X]
>=dev-qt/qtquickcontrols-${QTMIN}:5
>=dev-qt/qtsql-${QTMIN}:5
>=dev-qt/qtsvg-${QTMIN}:5
>=dev-qt/qtwidgets-${QTMIN}:5
>=dev-qt/qtx11extras-${QTMIN}:5
=kde-frameworks/kactivities-${PVCUT}*:5
=kde-frameworks/karchive-${PVCUT}*:5
=kde-frameworks/kconfig-${PVCUT}*:5[qml]
=kde-frameworks/kconfigwidgets-${PVCUT}*:5
=kde-frameworks/kcoreaddons-${PVCUT}*:5
=kde-frameworks/kdeclarative-${PVCUT}*:5
=kde-frameworks/kglobalaccel-${PVCUT}*:5
=kde-frameworks/kguiaddons-${PVCUT}*:5
=kde-frameworks/ki18n-${PVCUT}*:5
=kde-frameworks/kiconthemes-${PVCUT}*:5
=kde-frameworks/kio-${PVCUT}*:5
=kde-frameworks/kirigami-${PVCUT}*:5
=kde-frameworks/knotifications-${PVCUT}*:5
=kde-frameworks/kpackage-${PVCUT}*:5
=kde-frameworks/kservice-${PVCUT}*:5
=kde-frameworks/kwidgetsaddons-${PVCUT}*:5
=kde-frameworks/kwindowsystem-${PVCUT}*:5[X]
=kde-frameworks/kxmlgui-${PVCUT}*:5
x11-libs/libX11
x11-libs/libxcb
!gles2-only? ( media-libs/libglvnd[X] )
wayland? (
=kde-frameworks/kwayland-${PVCUT}*:5
media-libs/libglvnd
)
"
DEPEND="${RDEPEND}
x11-base/xorg-proto
"
BDEPEND="man? ( >=kde-frameworks/kdoctools-${PVCUT}:5 )"
PATCHES=(
"${FILESDIR}/${P}-fix-flicker-on-fade-animation.patch" # KDE-bug 463061, 463685
"${FILESDIR}/${P}-fix-calc-of-distance-betw-dialog-and-parent-applet.patch" # KDE-bug 464201, 464513
)
src_configure() {
local mycmakeargs=(
$(cmake_use_find_package !gles2-only OpenGL)
$(cmake_use_find_package man KF5DocTools)
$(cmake_use_find_package wayland EGL)
$(cmake_use_find_package wayland KF5Wayland)
)
ecm_src_configure
}