diff options
Diffstat (limited to 'Source/WebKit/qt')
-rw-r--r-- | Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp | 7 | ||||
-rw-r--r-- | Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.h | 2 | ||||
-rw-r--r-- | Source/WebKit/qt/WidgetApi/qgraphicswebview.cpp | 3 | ||||
-rw-r--r-- | Source/WebKit/qt/WidgetApi/qwebpage.cpp | 6 | ||||
-rw-r--r-- | Source/WebKit/qt/WidgetApi/qwebview.cpp | 4 | ||||
-rw-r--r-- | Source/WebKit/qt/WidgetSupport/PageClientQt.cpp | 10 | ||||
-rw-r--r-- | Source/WebKit/qt/WidgetSupport/PageClientQt.h | 2 |
7 files changed, 33 insertions, 1 deletions
diff --git a/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp b/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp index d1cf7b57d..734601ec2 100644 --- a/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp +++ b/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp @@ -345,6 +345,13 @@ QWebPageAdapter::VisibilityState QWebPageAdapter::visibilityState() const #endif } +void QWebPageAdapter::setPluginsVisible(bool visible) +{ + if (!page) + return; + page->pluginVisibilityChanged(visible); +} + void QWebPageAdapter::setNetworkAccessManager(QNetworkAccessManager *manager) { if (manager == networkManager) diff --git a/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.h b/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.h index ab07b84b2..1a26fe177 100644 --- a/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.h +++ b/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.h @@ -267,6 +267,8 @@ public: void setVisibilityState(VisibilityState); VisibilityState visibilityState() const; + void setPluginsVisible(bool visible); + static QWebPageAdapter* kit(WebCore::Page*); WebCore::ViewportArguments viewportArguments() const; void registerUndoStep(WTF::PassRefPtr<WebCore::UndoStep>); diff --git a/Source/WebKit/qt/WidgetApi/qgraphicswebview.cpp b/Source/WebKit/qt/WidgetApi/qgraphicswebview.cpp index a35252093..fe4a16ead 100644 --- a/Source/WebKit/qt/WidgetApi/qgraphicswebview.cpp +++ b/Source/WebKit/qt/WidgetApi/qgraphicswebview.cpp @@ -409,6 +409,9 @@ bool QGraphicsWebView::event(QEvent* event) d->page->d->client->resetCursor(); } #endif + if (event->type() == QEvent::Show + || event->type() == QEvent::Hide) + d->page->event(event); } } return QGraphicsWidget::event(event); diff --git a/Source/WebKit/qt/WidgetApi/qwebpage.cpp b/Source/WebKit/qt/WidgetApi/qwebpage.cpp index 613c1ac56..5ddc5b457 100644 --- a/Source/WebKit/qt/WidgetApi/qwebpage.cpp +++ b/Source/WebKit/qt/WidgetApi/qwebpage.cpp @@ -2690,6 +2690,12 @@ bool QWebPage::event(QEvent *ev) d->dynamicPropertyChangeEvent(this, static_cast<QDynamicPropertyChangeEvent*>(ev)); break; #endif + case QEvent::Show: + d->setPluginsVisible(true); + break; + case QEvent::Hide: + d->setPluginsVisible(false); + break; default: return QObject::event(ev); } diff --git a/Source/WebKit/qt/WidgetApi/qwebview.cpp b/Source/WebKit/qt/WidgetApi/qwebview.cpp index 1a35b325c..05cf042b0 100644 --- a/Source/WebKit/qt/WidgetApi/qwebview.cpp +++ b/Source/WebKit/qt/WidgetApi/qwebview.cpp @@ -703,7 +703,9 @@ bool QWebView::event(QEvent *e) d->page->updatePositionDependentActions(event->pos()); } else #endif // QT_NO_CONTEXTMENU - if (e->type() == QEvent::ShortcutOverride) { + if (e->type() == QEvent::ShortcutOverride + || e->type() == QEvent::Show + || e->type() == QEvent::Hide) { d->page->event(e); #ifndef QT_NO_CURSOR } else if (e->type() == QEvent::CursorChange) { diff --git a/Source/WebKit/qt/WidgetSupport/PageClientQt.cpp b/Source/WebKit/qt/WidgetSupport/PageClientQt.cpp index 8333a59cc..858290f6e 100644 --- a/Source/WebKit/qt/WidgetSupport/PageClientQt.cpp +++ b/Source/WebKit/qt/WidgetSupport/PageClientQt.cpp @@ -157,6 +157,11 @@ void PageClientQWidget::setWidgetVisible(Widget* widget, bool visible) qtWidget->setVisible(visible); } +bool PageClientQWidget::isViewVisible() +{ + return view ? view->isVisible() : false; +} + #if !defined(QT_NO_GRAPHICSVIEW) PageClientQGraphicsWidget::~PageClientQGraphicsWidget() { @@ -343,6 +348,11 @@ QGraphicsView* PageClientQGraphicsWidget::firstGraphicsView() const return view->scene()->views().first(); return 0; } + +bool PageClientQGraphicsWidget::isViewVisible() +{ + return view ? view->isVisible() : false; +} #endif // QT_NO_GRAPHICSVIEW } // namespace WebCore diff --git a/Source/WebKit/qt/WidgetSupport/PageClientQt.h b/Source/WebKit/qt/WidgetSupport/PageClientQt.h index 5db890eb5..8c7953634 100644 --- a/Source/WebKit/qt/WidgetSupport/PageClientQt.h +++ b/Source/WebKit/qt/WidgetSupport/PageClientQt.h @@ -83,6 +83,7 @@ public: virtual QRectF windowRect() const; virtual void setWidgetVisible(Widget*, bool visible); + virtual bool isViewVisible(); QWidget* view; QWebPage* page; @@ -168,6 +169,7 @@ public: virtual bool viewResizesToContentsEnabled() const { return viewResizesToContents; } virtual void setWidgetVisible(Widget*, bool); + virtual bool isViewVisible(); #if USE(TILED_BACKING_STORE) virtual QRectF graphicsItemVisibleRect() const; |