mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-08-05 13:27:09 +02:00
46 lines
1.7 KiB
Diff
46 lines
1.7 KiB
Diff
From e0ea91afdf0dccef7e3afbf23a159bf5a8d6b249 Mon Sep 17 00:00:00 2001
|
|
From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
|
|
Date: Mon, 15 Jul 2024 09:45:20 +0300
|
|
Subject: [PATCH] Remove parent for DropMenu
|
|
|
|
QWidget::winId() will force creating window handles for all its ancestor
|
|
widgets unless the Qt::WA_DontCreateNativeAncestors flag is set.
|
|
|
|
For example, on wayland, this would result in creating sub-surfaces, and
|
|
depending on the client, it's likely that there are going to be issues with
|
|
painting.
|
|
|
|
On the other hand, since the DropJob takes care of setting the transient
|
|
parent for the DropMenu, the parent can be simply omitted.
|
|
|
|
BUG: 490183
|
|
---
|
|
src/widgets/dropjob.cpp | 4 ++--
|
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/src/widgets/dropjob.cpp b/src/widgets/dropjob.cpp
|
|
index e11e762bd0..f4a23f5688 100644
|
|
--- a/src/widgets/dropjob.cpp
|
|
+++ b/src/widgets/dropjob.cpp
|
|
@@ -520,8 +520,7 @@ void DropJobPrivate::slotDropActionDetermined(int error)
|
|
|
|
// There was an error, handle it
|
|
if (error == KIO::ERR_UNKNOWN) {
|
|
- auto *window = KJobWidgets::window(q);
|
|
- KIO::DropMenu *menu = new KIO::DropMenu(window);
|
|
+ KIO::DropMenu *menu = new KIO::DropMenu();
|
|
QObject::connect(menu, &QMenu::aboutToHide, menu, &QObject::deleteLater);
|
|
|
|
// If the user clicks outside the menu, it will be destroyed without emitting the triggered signal.
|
|
@@ -541,6 +540,7 @@ void DropJobPrivate::slotDropActionDetermined(int error)
|
|
menu->windowHandle()->setTransientParent(transientParent);
|
|
}
|
|
}
|
|
+ auto *window = KJobWidgets::window(q);
|
|
menu->popup(window ? window->mapToGlobal(m_relativePos) : QCursor::pos());
|
|
}
|
|
m_menus.insert(menu);
|
|
--
|
|
GitLab
|
|
|