summaryrefslogtreecommitdiff
path: root/desktop/source
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/source')
-rw-r--r--desktop/source/lib/init.cxx9
1 files changed, 7 insertions, 2 deletions
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 02bf19602150..4d96e34333ea 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -1554,10 +1554,15 @@ void CallbackFlushHandler::queue(const int type, const char* data)
case LOK_CALLBACK_CALC_FUNCTION_LIST:
case LOK_CALLBACK_JSDIALOG:
{
+ // deleting the duplicate of visible cursor message can cause hyperlink popup not to show up on second/or more click on the same place.
+ // If the hyperlink is not empty we can bypass that to show the popup
+ const bool hyperLinkException = type == LOK_CALLBACK_INVALIDATE_VISIBLE_CURSOR &&
+ payload.find("\"hyperlink\":\"\"") == std::string::npos &&
+ payload.find("\"hyperlink\": {}") == std::string::npos;
const int nViewId = lcl_getViewId(payload);
removeAll(
- [type, nViewId] (const queue_type::value_type& elem) {
- return (elem.Type == type && nViewId == lcl_getViewId(elem));
+ [type, nViewId, hyperLinkException] (const queue_type::value_type& elem) {
+ return (elem.Type == type && nViewId == lcl_getViewId(elem) && !hyperLinkException);
}
);
}