diff options
author | Jocelyn Turcotte <jocelyn.turcotte@digia.com> | 2013-06-03 13:12:48 +0000 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-06-06 13:02:46 +0200 |
commit | f64d11fc6fd0798fae2a1ecc7565b9d2efd385bc (patch) | |
tree | 712048665265ec820f9f5712f6841f6805e12bf6 /Source/JavaScriptCore/runtime/JSONObject.cpp | |
parent | 57626c5f3624b3b55d3b5a49118bca8a5baad8b3 (diff) | |
download | qtwebkit-f64d11fc6fd0798fae2a1ecc7565b9d2efd385bc.tar.gz |
[Qt][Mac] Allow drawing plugins with QWindow by always using an intermediate bitmap.
https://bugs.webkit.org/show_bug.cgi?id=116620
Reviewed by Tor Arne Vestbø.
The isolation of QWidget along with QPA in Qt5 is abstracting away the native CGContext
of a QWidget and we would need to create a non-public API to be able to achieve it.
Instead of adding complexity to this rarely touched code, always draw into an
intermediate bitmap that we then paint into our QPainter afterward.
- Use CGBitmapContextCreate to allocate a buffer directly instead of creating a QPixmap
and extract an CGContextRef out of it.
- Get rid of the "if (platformPluginWidget())" code path since we don't paint directly
into the QWidget's backing store anymore.
- Always use m_contextRef to draw the plugin instead of alternating between direct and
indirect drawing.
* plugins/PluginView.cpp:
(WebCore::PluginView::PluginView):
* plugins/PluginView.h:
* plugins/mac/PluginViewMac.mm:
(WebCore::createBitmapContext):
(WebCore::PluginView::platformStart):
(WebCore::PluginView::platformDestroy):
(WebCore::PluginView::setFocus):
(WebCore::PluginView::setNPWindowIfNeeded):
(WebCore::PluginView::updatePluginWidget):
(WebCore::PluginView::paint):
(WebCore::PluginView::invalidateRect):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@151107 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Conflicts:
Source/WebCore/plugins/PluginView.h
Source/WebCore/plugins/mac/PluginViewMac.mm
Change-Id: I1006dcf3c08c14ca0d144532372de33f815fbc23
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Diffstat (limited to 'Source/JavaScriptCore/runtime/JSONObject.cpp')
0 files changed, 0 insertions, 0 deletions