Commit 40896c02 authored by Méven Car's avatar Méven Car Committed by Nate Graham

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
parent 94d7e147
......@@ -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 );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment