summaryrefslogtreecommitdiff
path: root/Source/WebKit/qt
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit/qt')
-rw-r--r--Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp7
-rw-r--r--Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.h2
-rw-r--r--Source/WebKit/qt/WidgetApi/qgraphicswebview.cpp3
-rw-r--r--Source/WebKit/qt/WidgetApi/qwebpage.cpp6
-rw-r--r--Source/WebKit/qt/WidgetApi/qwebview.cpp4
-rw-r--r--Source/WebKit/qt/WidgetSupport/PageClientQt.cpp10
-rw-r--r--Source/WebKit/qt/WidgetSupport/PageClientQt.h2
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;