From 2c86c348d7a94f27d1e9e7a71c2435565cbe6fb5 Mon Sep 17 00:00:00 2001 From: Peter Varga Date: Wed, 15 May 2019 10:33:07 +0200 Subject: Disable edit actions when content has no focused frame Task-number: QTBUG-75505 Change-Id: Ia1329ff554a86e307aa7995e9af1665ea6c5e64c Reviewed-by: Allan Sandfeld Jensen --- src/webenginewidgets/api/qwebenginepage.cpp | 22 ++++++++++++++++++++++ src/webenginewidgets/api/qwebenginepage_p.h | 1 + 2 files changed, 23 insertions(+) (limited to 'src/webenginewidgets/api') diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index c33034015..78b89a53c 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -650,6 +650,16 @@ void QWebEnginePagePrivate::updateAction(QWebEnginePage::WebAction action) const case QWebEnginePage::ViewSource: enabled = adapter->canViewSource(); break; + case QWebEnginePage::Cut: + case QWebEnginePage::Copy: + case QWebEnginePage::Paste: + case QWebEnginePage::Undo: + case QWebEnginePage::Redo: + case QWebEnginePage::SelectAll: + case QWebEnginePage::PasteAndMatchStyle: + case QWebEnginePage::Unselect: + enabled = adapter->hasFocusedFrame(); + break; default: break; } @@ -668,6 +678,18 @@ void QWebEnginePagePrivate::updateNavigationActions() updateAction(QWebEnginePage::ViewSource); } +void QWebEnginePagePrivate::updateEditActions() +{ + updateAction(QWebEnginePage::Cut); + updateAction(QWebEnginePage::Copy); + updateAction(QWebEnginePage::Paste); + updateAction(QWebEnginePage::Undo); + updateAction(QWebEnginePage::Redo); + updateAction(QWebEnginePage::SelectAll); + updateAction(QWebEnginePage::PasteAndMatchStyle); + updateAction(QWebEnginePage::Unselect); +} + #ifndef QT_NO_ACTION void QWebEnginePagePrivate::_q_webActionTriggered(bool checked) { diff --git a/src/webenginewidgets/api/qwebenginepage_p.h b/src/webenginewidgets/api/qwebenginepage_p.h index 25ed89371..f8f67d341 100644 --- a/src/webenginewidgets/api/qwebenginepage_p.h +++ b/src/webenginewidgets/api/qwebenginepage_p.h @@ -144,6 +144,7 @@ public: void updateScrollPosition(const QPointF &position) override; void updateContentsSize(const QSizeF &size) override; void updateNavigationActions() override; + void updateEditActions() override; void startDragging(const content::DropData &dropData, Qt::DropActions allowedActions, const QPixmap &pixmap, const QPoint &offset) override; bool supportsDragging() const override; -- cgit v1.2.3