diff options
Diffstat (limited to 'WebCore/plugins')
-rw-r--r-- | WebCore/plugins/PluginView.cpp | 8 | ||||
-rw-r--r-- | WebCore/plugins/PluginView.h | 5 | ||||
-rw-r--r-- | WebCore/plugins/win/PluginMessageThrottlerWin.cpp | 4 | ||||
-rw-r--r-- | WebCore/plugins/win/PluginViewWin.cpp | 17 |
4 files changed, 22 insertions, 12 deletions
diff --git a/WebCore/plugins/PluginView.cpp b/WebCore/plugins/PluginView.cpp index ae1a0a9..42d98a8 100644 --- a/WebCore/plugins/PluginView.cpp +++ b/WebCore/plugins/PluginView.cpp @@ -65,10 +65,13 @@ #include "PluginMessageThrottlerWin.h" #endif +<<<<<<< HEAD #if defined(ANDROID_PLUGINS) #include "TouchEvent.h" #endif +======= +>>>>>>> webkit.org at r60074 #if USE(JSC) #include "JSDOMBinding.h" #include "JSDOMWindow.h" @@ -799,6 +802,7 @@ PassRefPtr<JSC::Bindings::Instance> PluginView::bindingInstance() return 0; #endif // NETSCAPE_PLUGIN_API } +<<<<<<< HEAD #endif // JSC #if USE(V8) @@ -831,6 +835,9 @@ NPObject* PluginView::getNPObject() { #endif // NETSCAPE_PLUGIN_API } #endif // V8 +======= +#endif +>>>>>>> webkit.org at r60074 void PluginView::disconnectStream(PluginStream* stream) { @@ -920,6 +927,7 @@ PluginView::PluginView(Frame* parentFrame, const IntSize& size, PluginPackage* p , m_isJavaScriptPaused(false) , m_isHalted(false) , m_hasBeenHalted(false) + , m_haveCalledSetWindow(false) { #if defined(ANDROID_PLUGINS) platformInit(); diff --git a/WebCore/plugins/PluginView.h b/WebCore/plugins/PluginView.h index 0849c59..f4474cc 100644 --- a/WebCore/plugins/PluginView.h +++ b/WebCore/plugins/PluginView.h @@ -70,8 +70,11 @@ namespace JSC { } } #endif +<<<<<<< HEAD class NPObject; +======= +>>>>>>> webkit.org at r60074 namespace WebCore { class Element; @@ -434,6 +437,8 @@ private: bool m_isHalted; bool m_hasBeenHalted; + bool m_haveCalledSetWindow; + static PluginView* s_currentPluginView; }; diff --git a/WebCore/plugins/win/PluginMessageThrottlerWin.cpp b/WebCore/plugins/win/PluginMessageThrottlerWin.cpp index 46fee62..dd1f05b 100644 --- a/WebCore/plugins/win/PluginMessageThrottlerWin.cpp +++ b/WebCore/plugins/win/PluginMessageThrottlerWin.cpp @@ -45,9 +45,9 @@ static const double MessageThrottleTimeInterval = 0.016; static const double MessageDirectProcessingInterval = 0.005; PluginMessageThrottlerWin::PluginMessageThrottlerWin(PluginView* pluginView) - : m_back(0) + : m_pluginView(pluginView) + , m_back(0) , m_front(0) - , m_pluginView(pluginView) , m_lastMessageTime(0) , m_messageThrottleTimer(this, &PluginMessageThrottlerWin::messageThrottleTimerFired) { diff --git a/WebCore/plugins/win/PluginViewWin.cpp b/WebCore/plugins/win/PluginViewWin.cpp index 96fa9e4..1765939 100644 --- a/WebCore/plugins/win/PluginViewWin.cpp +++ b/WebCore/plugins/win/PluginViewWin.cpp @@ -524,23 +524,14 @@ void PluginView::paintIntoTransformedContext(HDC hdc) m_npWindow.type = NPWindowTypeDrawable; m_npWindow.window = hdc; - WINDOWPOS windowpos = { 0 }; + WINDOWPOS windowpos = { 0, 0, 0, 0, 0, 0, 0 }; -#if OS(WINCE) IntRect r = static_cast<FrameView*>(parent())->contentsToWindow(frameRect()); windowpos.x = r.x(); windowpos.y = r.y(); windowpos.cx = r.width(); windowpos.cy = r.height(); -#else - IntPoint p = static_cast<FrameView*>(parent())->contentsToWindow(frameRect().location()); - - windowpos.x = p.x(); - windowpos.y = p.y(); - windowpos.cx = frameRect().width(); - windowpos.cy = frameRect().height(); -#endif NPEvent npEvent; npEvent.event = WM_WINDOWPOSCHANGED; @@ -610,6 +601,10 @@ void PluginView::paint(GraphicsContext* context, const IntRect& rect) if (context->paintingDisabled()) return; + // Ensure that we have called SetWindow before we try to paint. + if (!m_haveCalledSetWindow) + setNPWindowRect(frameRect()); + if (m_isWindowed) { #if !OS(WINCE) if (context->shouldIncludeChildWindows()) @@ -815,6 +810,8 @@ void PluginView::setNPWindowRect(const IntRect& rect) m_plugin->pluginFuncs()->setwindow(m_instance, &m_npWindow); setCallingPlugin(false); + m_haveCalledSetWindow = true; + if (!m_isWindowed) return; |