diff --git a/src/vmdtab.cpp b/src/vmdtab.cpp index 0f00fde5..fdc5d34f 100644 --- a/src/vmdtab.cpp +++ b/src/vmdtab.cpp @@ -1408,6 +1408,7 @@ void VMdTab::setCurrentMode(Mode p_mode) m_editor->hide(); } + m_webViewer->setInPreview(false); m_webViewer->show(); // Fix the bug introduced by 051088be31dbffa3c04e2d382af15beec40d5fdb @@ -1434,6 +1435,7 @@ void VMdTab::setCurrentMode(Mode p_mode) case Mode::EditPreview: Q_ASSERT(m_editor); + m_webViewer->setInPreview(true); m_webViewer->show(); m_editor->show(); diff --git a/src/vwebview.cpp b/src/vwebview.cpp index 2fca84cb..29da582d 100644 --- a/src/vwebview.cpp +++ b/src/vwebview.cpp @@ -30,7 +30,8 @@ VWebView::VWebView(VFile *p_file, QWidget *p_parent) : QWebEngineView(p_parent), m_file(p_file), m_copyImageUrlActionHooked(false), - m_afterCopyImage(false) + m_afterCopyImage(false), + m_inPreview(false) { setAcceptDrops(false); @@ -40,6 +41,11 @@ VWebView::VWebView(VFile *p_file, QWidget *p_parent) void VWebView::contextMenuEvent(QContextMenuEvent *p_event) { + if (m_inPreview) { + QWebEngineView(p_event); + return; + } + QMenu *menu = page()->createStandardContextMenu(); menu->setToolTipsVisible(true); @@ -108,6 +114,8 @@ void VWebView::contextMenuEvent(QContextMenuEvent *p_event) hideUnusedActions(menu); + p_event->accept(); + menu->exec(p_event->globalPos()); delete menu; } @@ -400,4 +408,3 @@ void VWebView::handleCopyAllAsAction(QAction *p_act) triggerPageAction(QWebEnginePage::Unselect); } - diff --git a/src/vwebview.h b/src/vwebview.h index e6388a65..039a7887 100644 --- a/src/vwebview.h +++ b/src/vwebview.h @@ -15,6 +15,8 @@ public: // @p_file could be NULL. explicit VWebView(VFile *p_file, QWidget *p_parent = Q_NULLPTR); + void setInPreview(bool p_preview); + signals: void editNote(); @@ -64,6 +66,13 @@ private: // Target of Copy As. QString m_copyTarget; + + // Whether in preview mode. + bool m_inPreview; }; +inline void VWebView::setInPreview(bool p_preview) +{ + m_inPreview = p_preview; +} #endif // VWEBVIEW_H