mirror of
https://invent.kde.org/system/dolphin
synced 2024-10-28 03:21:56 +00:00
Correctly position context menu of the information panel under wayland with a secondary screen
Summary: According to my testing this bug occurs because Qcursor::pos() does not work as expected under wayland on a secondary screen, then it returns inaccurate data. This could hide bugs elsewhere. BUG: 404799 FIXED-IN: 19.04.0 Test Plan: Under Wayland test the context menu on both screens. Do the same under Xorg. Reviewers: #dolphin, elvisangelaccio Reviewed By: #dolphin, elvisangelaccio Subscribers: elvisangelaccio, ngraham, nicolasfella, kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D19535
This commit is contained in:
parent
94d7e1471e
commit
40896c02d9
|
@ -158,7 +158,7 @@ void InformationPanel::resizeEvent(QResizeEvent* event)
|
|||
void InformationPanel::contextMenuEvent(QContextMenuEvent* event)
|
||||
{
|
||||
// TODO: Move code from InformationPanelContent::configureSettings() here
|
||||
m_content->configureSettings(customContextMenuActions());
|
||||
m_content->configureSettings(customContextMenuActions(), event->globalPos());
|
||||
Panel::contextMenuEvent(event);
|
||||
}
|
||||
|
||||
|
|
|
@ -264,7 +264,7 @@ bool InformationPanelContent::eventFilter(QObject* obj, QEvent* event)
|
|||
return QWidget::eventFilter(obj, event);
|
||||
}
|
||||
|
||||
void InformationPanelContent::configureSettings(const QList<QAction*>& customContextMenuActions)
|
||||
void InformationPanelContent::configureSettings(const QList<QAction*>& customContextMenuActions, const QPointF& pos)
|
||||
{
|
||||
QMenu popup(this);
|
||||
|
||||
|
@ -288,7 +288,7 @@ void InformationPanelContent::configureSettings(const QList<QAction*>& customCon
|
|||
|
||||
// Open the popup and adjust the settings for the
|
||||
// selected action.
|
||||
QAction* action = popup.exec(QCursor::pos());
|
||||
QAction* action = popup.exec(pos.toPoint());
|
||||
if (!action) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -78,7 +78,7 @@ public:
|
|||
*
|
||||
* TODO: Move this code to the class InformationPanel
|
||||
*/
|
||||
void configureSettings(const QList<QAction*>& customContextMenuActions);
|
||||
void configureSettings(const QList<QAction*>& customContextMenuActions, const QPointF& pos);
|
||||
|
||||
signals:
|
||||
void urlActivated( const QUrl& url );
|
||||
|
|
Loading…
Reference in a new issue