]> cloud.milkyroute.net Git - dolphin.git/commitdiff
[FoldersPanel] Stop ignoring positions from the controller
authorElvis Angelaccio <elvis.angelaccio@kde.org>
Sun, 10 Mar 2019 11:45:43 +0000 (12:45 +0100)
committerElvis Angelaccio <elvis.angelaccio@kde.org>
Sun, 10 Mar 2019 11:45:43 +0000 (12:45 +0100)
This fixes the position of Folder panel's context menus on multi-screens
on Wayland, because `QCursor::pos()` is not reliable on those setups.

src/panels/folders/folderspanel.cpp
src/panels/folders/treeviewcontextmenu.cpp
src/panels/folders/treeviewcontextmenu.h

index 95953f66bd1a47531621985c2a142a70061a0a9f..020c41e552a263e5b1b97a8082bf74a775b3fbfa 100644 (file)
@@ -214,12 +214,10 @@ void FoldersPanel::slotItemMiddleClicked(int index)
 
 void FoldersPanel::slotItemContextMenuRequested(int index, const QPointF& pos)
 {
 
 void FoldersPanel::slotItemContextMenuRequested(int index, const QPointF& pos)
 {
-    Q_UNUSED(pos);
-
     const KFileItem fileItem = m_model->fileItem(index);
 
     QPointer<TreeViewContextMenu> contextMenu = new TreeViewContextMenu(this, fileItem);
     const KFileItem fileItem = m_model->fileItem(index);
 
     QPointer<TreeViewContextMenu> contextMenu = new TreeViewContextMenu(this, fileItem);
-    contextMenu.data()->open();
+    contextMenu.data()->open(pos.toPoint());
     if (contextMenu.data()) {
         delete contextMenu.data();
     }
     if (contextMenu.data()) {
         delete contextMenu.data();
     }
@@ -227,10 +225,8 @@ void FoldersPanel::slotItemContextMenuRequested(int index, const QPointF& pos)
 
 void FoldersPanel::slotViewContextMenuRequested(const QPointF& pos)
 {
 
 void FoldersPanel::slotViewContextMenuRequested(const QPointF& pos)
 {
-    Q_UNUSED(pos);
-
     QPointer<TreeViewContextMenu> contextMenu = new TreeViewContextMenu(this, KFileItem());
     QPointer<TreeViewContextMenu> contextMenu = new TreeViewContextMenu(this, KFileItem());
-    contextMenu.data()->open();
+    contextMenu.data()->open(pos.toPoint());
     if (contextMenu.data()) {
         delete contextMenu.data();
     }
     if (contextMenu.data()) {
         delete contextMenu.data();
     }
index f8cb0b4d65573f94a3b340cb0b2451412ac973b4..df9b9d62e5aba15270814b27907a83b1ce71dd4a 100644 (file)
@@ -55,7 +55,7 @@ TreeViewContextMenu::~TreeViewContextMenu()
 {
 }
 
 {
 }
 
-void TreeViewContextMenu::open()
+void TreeViewContextMenu::open(const QPoint& pos)
 {
     QMenu* popup = new QMenu(m_parent);
 
 {
     QMenu* popup = new QMenu(m_parent);
 
@@ -161,7 +161,7 @@ void TreeViewContextMenu::open()
     }
 
     QPointer<QMenu> popupPtr = popup;
     }
 
     QPointer<QMenu> popupPtr = popup;
-    popup->exec(QCursor::pos());
+    popup->exec(pos);
     if (popupPtr.data()) {
         popupPtr.data()->deleteLater();
     }
     if (popupPtr.data()) {
         popupPtr.data()->deleteLater();
     }
index a9491fb5c50aa033f5e6954a57208fcb135f1624..245b7d6b055e7bf574425145eb608b8372e56cc9 100644 (file)
@@ -49,7 +49,7 @@ public:
     ~TreeViewContextMenu() override;
 
     /** Opens the context menu modal. */
     ~TreeViewContextMenu() override;
 
     /** Opens the context menu modal. */
-    void open();
+    void open(const QPoint& pos);
 
 private slots:
     /** Cuts the item m_fileItem. */
 
 private slots:
     /** Cuts the item m_fileItem. */