webengine/osswebengine/WebKit/s60/plugins/PluginWin.cpp
changeset 27 60c5402cb945
parent 17 c8a366e56285
child 36 0ed94ceaa377
equal deleted inserted replaced
17:c8a366e56285 27:60c5402cb945
   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 }