diff -r 1f3c3f2f5b0a -r c711bdda59f4 webengine/osswebengine/WebKit/s60/webview/WebView.cpp --- a/webengine/osswebengine/WebKit/s60/webview/WebView.cpp Mon Mar 15 12:44:50 2010 +0200 +++ b/webengine/osswebengine/WebKit/s60/webview/WebView.cpp Wed Mar 31 23:16:40 2010 +0300 @@ -197,7 +197,6 @@ , m_defaultZoomLevel(KZoomLevelDefaultValue) , m_pageFullScreenHandler(NULL) , m_viewIsScrolling(false) -, m_ptrbuffer(0) , m_showCursor(false) , m_allowRepaints(true) , m_prevEditMode(false) @@ -231,7 +230,6 @@ m_fastScrollTimer->Cancel(); delete m_fastScrollTimer; - delete [] m_ptrbuffer; delete m_pinchZoomHandler; delete m_repainttimer; delete m_webfeptexteditor; @@ -351,7 +349,6 @@ m_pinchZoomHandler = WebPagePinchZoomHandler::NewL(this); // Create the PointerEventHandler - m_ptrbuffer = new TPoint[256]; m_webpointerEventHandler = WebPointerEventHandler::NewL(this); // Create the ScrollHandler @@ -372,10 +369,12 @@ MakeViewVisible(ETrue); m_isPluginsVisible=ETrue; CCoeControl::SetFocus(ETrue); -#ifdef BRDO_MULTITOUCH_ENABLED_FF - //To enable advance pointer info for multi-touch + +#if defined(BRDO_MULTITOUCH_ENABLED_FF) && !defined (__WINSCW__) + //Enable advance pointer info for multi-touch. Window().EnableAdvancedPointers(); #endif + cache()->setCapacities(0, 0, defaultCacheCapacity); m_waiter = new(ELeave) CActiveSchedulerWait(); @@ -712,13 +711,12 @@ //------------------------------------------------------------------------------- void WebView::collectOffscreenbitmapL(CFbsBitmap& snapshot) { - if( m_widgetextension && m_widgetextension->IsWidgetPublising()) { - if ( snapshot.Handle() == 0) { - // Create bitmap only once - (snapshot).Create(m_brctl->Size(), StaticObjectsContainer::instance()->webSurface()->displayMode()); - } - CFbsBitmapDevice* device = CFbsBitmapDevice::NewL( &snapshot); - CleanupStack::PushL(device); + if ( snapshot.Handle() == 0) { + // Create bitmap only once + (snapshot).Create(m_brctl->Size(), StaticObjectsContainer::instance()->webSurface()->displayMode()); + } + CFbsBitmapDevice* device = CFbsBitmapDevice::NewL( &snapshot); + CleanupStack::PushL(device); WebCoreGraphicsContext* gc = WebCoreGraphicsContext::NewL( device, &snapshot, mainFrame()->frameView()); CleanupStack::PushL(gc); @@ -733,8 +731,7 @@ } mainFrame()->frameView()->draw( *gc, mainFrame()->frameView()->visibleRect() ); - CleanupStack::PopAndDestroy(2); - } + CleanupStack::PopAndDestroy(2); } @@ -2042,7 +2039,7 @@ // some content that we already searched on the first pass. In the worst case, we could search the entire contents of this frame twice. // To fix this, we'd need to add a mechanism to specify a range in which to search. if (wrapFlag && lastFrame) { - if (frame->bridge()->searchFor(keyword, forward, false, true, false)) + if (frame && frame->bridge() && frame->bridge()->searchFor(keyword, forward, false, true, false)) return TBrCtlDefs::EFindMatch; } @@ -2334,9 +2331,9 @@ else { newMinZoomLevel = KZoomLevelDefaultValue; } - +#ifndef BRDO_MULTITOUCH_ENABLED_FF newMinZoomLevel = (newMinZoomLevel/m_pageZoomHandler->stepSize())*m_pageZoomHandler->stepSize(); - +#endif TBool needsUpdateArray = EFalse; //Update the new array if ( m_minZoomLevel!= newMinZoomLevel) @@ -2374,8 +2371,10 @@ } m_zoomLevelArray.Reset(); - +#ifndef BRDO_MULTITOUCH_ENABLED_FF m_minZoomLevel = TInt(m_minZoomLevel/10) * 10; +#endif + m_zoomLevelArray.Append(KZoomLevelDefaultValue); //construct the zoom array from the default level @@ -2609,11 +2608,13 @@ #if USE(LOW_BANDWIDTH_DISPLAY) m_page->mainFrame()->loader()->setUseLowBandwidthDisplay(false); #endif - StaticObjectsContainer::instance()->setIconDatabaseEnabled(false); + if (!(m_brctl->capabilities() & TBrCtlDefs::ECapabilityAutoFormFill)) + StaticObjectsContainer::instance()->setIconDatabaseEnabled(false); } //Widgets dont need memory cache for dead objects. hence set it to 0 cache()->setCapacities(0, 0, 0); + cache()->setDisabled(true); return m_widgetextension; } @@ -3084,4 +3085,31 @@ m_pinchDocDelta.iY = (float)shiftInView.iY * 100 / zoomLevel; } +void WebView::reCreatePlugins() +{ + Frame* coreFrame = core(mainFrame()); + MWebCoreObjectWidget* view = NULL; + for (Frame* frame = coreFrame; frame; frame = frame->tree()->traverseNext(coreFrame)) { + PassRefPtr objects = frame->document()->objects(); + for (Node* n = objects->firstItem(); n; n = objects->nextItem()) { + view = widget(n); + if (view) { + PluginSkin* plg = static_cast(view); + if(plg->activeStreams() > 0) + plg->reCreatePlugin(); + } + } + + PassRefPtr embeds = frame->document()->embeds(); + for (Node* n = embeds->firstItem(); n; n = embeds->nextItem()) { + view = widget(n); + if (view) { + PluginSkin* plg = static_cast(view); + if(plg->activeStreams() > 0) + plg->reCreatePlugin(); + } + } + } +} + // END OF FILE