339 // PluginWin::RefreshPlugin |
339 // PluginWin::RefreshPlugin |
340 // |
340 // |
341 // Refresh the plugin. - Called by PluginSkin |
341 // Refresh the plugin. - Called by PluginSkin |
342 // ----------------------------------------------------------------------------- |
342 // ----------------------------------------------------------------------------- |
343 // |
343 // |
344 TInt PluginWin::refreshPlugin(CFbsBitGc& bitmapContext) |
344 TInt PluginWin::refreshPlugin(CFbsBitGc& bitmapContext,TRect aRect) |
345 { |
345 { |
346 if (m_control && IsVisible() && m_control->DrawableWindow()) |
346 if (m_control && IsVisible() && m_control->DrawableWindow()) |
347 m_control->DrawNow(); |
347 m_control->DrawNow(); |
348 if (!m_windowedPlugin && m_bitmap) { |
348 if (!m_windowedPlugin && m_bitmap) { |
349 NPEvent event; |
349 NPEvent event; |
350 event.event = ENppEventDraw; |
350 event.event = ENppEventDraw; |
351 event.param = 0; |
351 event.param = 0; |
352 if (m_pluginskin->getNPPluginFucs() && m_pluginskin->getNPPluginFucs()->event) { |
352 if (m_pluginskin->getNPPluginFucs() && m_pluginskin->getNPPluginFucs()->event) { |
353 m_pluginskin->getNPPluginFucs()->event(m_pluginskin->getNPP(), static_cast<void*>(&event)); |
353 m_pluginskin->getNPPluginFucs()->event(m_pluginskin->getNPP(), static_cast<void*>(&event)); |
354 } |
354 } |
355 WebFrameView* fv = m_pluginskin->frame()->frameView(); |
355 bitmapContext.DrawBitmap(aRect, m_bitmap); |
356 TRect rect(Rect()); |
|
357 rect = TRect(fv->viewCoordsInFrameCoords(Rect().iTl), fv->viewCoordsInFrameCoords(Rect().iBr)); |
|
358 rect = fv->toViewCoords(rect); |
|
359 rect.SetSize(m_bitmap->SizeInPixels()); // toViewCoords sometimes grows the rect by 1, which wil cause the bitmap to not draw |
|
360 bitmapContext.DrawBitmap(rect, m_bitmap, rect.Size()); |
|
361 } |
356 } |
362 return KErrNone; |
357 return KErrNone; |
363 } |
358 } |
364 |
359 |
365 // ----------------------------------------------------------------------------- |
360 // ----------------------------------------------------------------------------- |
756 event.param = &ev; |
751 event.param = &ev; |
757 ret = m_pluginskin->getNPPluginFucs()->event(m_pluginskin->getNPP(), |
752 ret = m_pluginskin->getNPPluginFucs()->event(m_pluginskin->getNPP(), |
758 static_cast<void*>(&event)); |
753 static_cast<void*>(&event)); |
759 } |
754 } |
760 } |
755 } |
|
756 else if(!m_windowedPlugin && m_pluginskin->getNPPluginFucs() && m_pluginskin->getNPPluginFucs()->event){ |
|
757 TRect cliprect = m_pluginskin->getClipRect(); |
|
758 TPoint newpos = aEvent.CurrentPos(); |
|
759 if(cliprect.Contains(newpos)){ |
|
760 TGestureEvent gestEvent(aEvent); |
|
761 NPEvent event; |
|
762 NPEventPointer ev; |
|
763 event.event = ENppEventPointer; |
|
764 ev.reserved = &gestEvent; |
|
765 ev.pointerEvent = NULL; |
|
766 event.param = &ev; |
|
767 ret = m_pluginskin->getNPPluginFucs()->event(m_pluginskin->getNPP(), |
|
768 static_cast<void*>(&event)); |
|
769 } |
|
770 } |
761 return ret; |
771 return ret; |
762 |
772 |
763 } |
773 } |