summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/assembler/MacroAssembler.cpp
diff options
context:
space:
mode:
authorJocelyn Turcotte <jocelyn.turcotte@digia.com>2013-05-27 12:33:03 +0000
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-06-04 20:34:15 +0200
commit0376f73239d78abcd99fcb2dec82e8d1b5132296 (patch)
tree5818d4b98d4b1c9f0b843edc9ff8c0a08f37b2db /Source/JavaScriptCore/assembler/MacroAssembler.cpp
parentac00a345b23686aa458539dde0cb3711bed84de3 (diff)
downloadqtwebkit-0376f73239d78abcd99fcb2dec82e8d1b5132296.tar.gz
[Qt][Win] Input events aren't mapped properly with windowless plugins.
https://bugs.webkit.org/show_bug.cgi?id=116094 Reviewed by Tor Arne Vestbø. Source/WebCore: The events are first sent properly but Flash then immediately repaints and this causes flickering painting. The issue is that Flash seems to be doing some input event tracking of its own internally, using the HWND returned through NPN_GetValue(NPNVnetscapeWindow). We are currently using two coordinate systems for windowless plugins on Windows with Qt: - FrameView coordinates: Used for input events and ajusted with the WM_WINDOWPOSCHANGED message - Drawable coordinates: Used by WM_PAINT and adjusted with NPP_SetWindow This patch fixes the bug by mapping input events to the native window returned as NPNVnetscapeWindow instead of the FrameView to ensure that those coordinates will match the ones used by Flash internally. With this we shouldn't be using FrameView coordinates anywhere for windowless plugins on Windows with Qt. * platform/qt/QWebPageClient.h: (QWebPageClient): Added mapToOwnerWindow to the interface, mapping from the FrameView up to the wrapping nativeParentWidget. * plugins/win/PluginViewWin.cpp: (WebCore::contentsToNativeWindow): (WebCore::PluginView::paintIntoTransformedContext): (WebCore::PluginView::handleMouseEvent): Source/WebKit/qt: * WidgetSupport/PageClientQt.cpp: (WebCore::PageClientQWidget::mapToOwnerWindow): (WebCore::PageClientQGraphicsWidget::makeOpenGLContextCurrentIfAvailable): (WebCore::PageClientQGraphicsWidget::screenNumber): (WebCore::PageClientQGraphicsWidget::geometryRelativeToOwnerWidget): (WebCore::PageClientQGraphicsWidget::mapToOwnerWindow): (WebCore::PageClientQGraphicsWidget::graphicsItemVisibleRect): (WebCore::PageClientQGraphicsWidget::firstGraphicsView): Extracted this common logic from makeOpenGLContextCurrentIfAvailable, screenNumber, geometryRelativeToOwnerWidget and graphicsItemVisibleRect to be able to use it in mapToOwnerWindow. * WidgetSupport/PageClientQt.h: (PageClientQWidget): (PageClientQGraphicsWidget): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150749 268f45cc-cd09-0410-ab3c-d52691b4dbfc Conflicts: Source/WebCore/plugins/win/PluginViewWin.cpp Change-Id: I11ec6b6a9377c3e09b775d24fffb8572decbd0a5 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Diffstat (limited to 'Source/JavaScriptCore/assembler/MacroAssembler.cpp')
0 files changed, 0 insertions, 0 deletions