From b3eb91d3f7c13b282a898ecc429c577e5778132d Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava Date: Fri, 21 Jan 2022 11:53:48 +0000 Subject: [PATCH] Store the current hotspot under mouse This is important if the actions need to access it later on --- src/session/SessionController.cpp | 8 ++++---- src/session/SessionController.h | 3 +++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/session/SessionController.cpp b/src/session/SessionController.cpp index 21451e68..4ca5eddc 100644 --- a/src/session/SessionController.cpp +++ b/src/session/SessionController.cpp @@ -1854,11 +1854,11 @@ void SessionController::showDisplayContextMenu(const QPoint &position) QList toRemove; // prepend content-specific actions such as "Open Link", "Copy Email Address" etc - QSharedPointer hotSpot = view()->filterActions(position); - if (hotSpot != nullptr) { - popup->insertActions(popup->actions().value(0, nullptr), hotSpot->actions() << contentSeparator); + _currentHotSpot = view()->filterActions(position); + if (_currentHotSpot != nullptr) { + popup->insertActions(popup->actions().value(0, nullptr), _currentHotSpot->actions() << contentSeparator); popup->addAction(contentSeparator); - toRemove = hotSpot->setupMenu(popup.data()); + toRemove = _currentHotSpot->setupMenu(popup.data()); // The action above can create an action for Open Folder With, // for the selected folder, but then we have two different diff --git a/src/session/SessionController.h b/src/session/SessionController.h index 0f6eed5e..f9368d95 100644 --- a/src/session/SessionController.h +++ b/src/session/SessionController.h @@ -50,6 +50,7 @@ class SessionGroup; class TerminalDisplay; class UrlFilter; class ColorFilter; +class HotSpot; /** * Provides the menu actions to manipulate a single terminal session and view pair. @@ -370,6 +371,8 @@ private: EscapeSequenceUrlFilter *_escapedUrlFilter; std::unique_ptr _clientBuilder; + + QSharedPointer _currentHotSpot; }; }