diff -r e1bea15f9a39 -r 79859ed3eea9 webengine/osswebengine/WebKit/s60/webview/WebFrame.cpp --- a/webengine/osswebengine/WebKit/s60/webview/WebFrame.cpp Thu Aug 19 10:58:56 2010 +0300 +++ b/webengine/osswebengine/WebKit/s60/webview/WebFrame.cpp Tue Aug 31 16:17:46 2010 +0300 @@ -41,8 +41,8 @@ #include "GraphicsContext.h" #include "HTMLFormElement.h" #include "ResourceRequest.h" -#include "webkitlogger.h" -#include "webutil.h" +#include "WebKitLogger.h" +#include "WebUtil.h" #include "PluginSkin.h" #include "PluginHandler.h" #include "kjs_proxy.h" @@ -280,29 +280,30 @@ return frameLoader()->documentLoader(); } -void WebFrame::notifyPluginsOfPositionChange() -{ - PluginHandler* plghandler = StaticObjectsContainer::instance()->pluginHandler(); - WTF::HashSet pluginObjs = plghandler->pluginObjects(); - for(WTF::HashSet::iterator it = pluginObjs.begin() ; it != pluginObjs.end() ; ++it ) { - PluginSkin* plg = static_cast (*it); - WebFrame* plgWebFrame = plg->getWebFrame(); - CBrCtl* plbrCtl = control(plg->frame()); - CBrCtl* pgbrCtl = control(this); +void WebFrame::notifyPluginsOfScrolling() +{ + setpluginToScroll(true); + Frame* coreFrame = core(this); + for (Frame* frame = coreFrame; frame; frame = frame->tree()->traverseNext(coreFrame)) { + PassRefPtr objects = frame->document()->objects(); + for (Node* n = objects->firstItem(); n; n = objects->nextItem()) + notifyPluginOfScrolling(n->renderer()); - if(plbrCtl == pgbrCtl) - { - notifyPluginOfPositionChange(static_cast (*it)); - } - } + PassRefPtr embeds = frame->document()->embeds(); + for (Node* n = embeds->firstItem(); n; n = embeds->nextItem()) + notifyPluginOfScrolling(n->renderer()); + + } + setpluginToScroll(false); } -void WebFrame::notifyPluginOfPositionChange(PluginSkin* plg) +void WebFrame::notifyPluginOfScrolling(RenderObject* renderer) { + MWebCoreObjectWidget* view = widget(renderer); //Don't repaint the plugin objects if Browser is in PageView mode - if (plg) { - plg->positionChanged(); - TRect r = m_view->toDocCoords(plg->getPluginWinRect()); + if (view) { + view->positionChanged(); + TRect r = m_view->toDocCoords(static_cast(view)->getPluginWinRect()); m_view->topView()->scheduleRepaint(r); } } @@ -444,9 +445,7 @@ WebFrame* kit(Frame* frame) { - if( frame && frame->bridge() ) - return ((WebFrameBridge *)frame->bridge())->webFrame(); - return NULL; + return frame ? ((WebFrameBridge *)frame->bridge())->webFrame(): NULL; } WebView *kit(Page* page) @@ -517,27 +516,28 @@ } void WebFrame::makeVisiblePlugins(TBool visible) -{ - MWebCoreObjectWidget* view = NULL; - Frame* coreFrame = core(this); - PluginSkin* plg = 0; - 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) { - plg = static_cast(view); - plg->makeVisible(visible); - } - } - PassRefPtr embeds = frame->document()->embeds(); - for (Node* n = embeds->firstItem(); n; n = embeds->nextItem()) { +{ + MWebCoreObjectWidget* view = NULL; + int pluginCount = 0; + Frame* coreFrame = core(this); + PluginSkin* ptr = 0; + 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) { - plg = static_cast(view); - plg->makeVisible(visible); - } + if (view) { + ptr = static_cast(view); + ptr->makeVisible(visible); + } + } + PassRefPtr embeds = frame->document()->embeds(); + for (Node* n = embeds->firstItem(); n; n = embeds->nextItem()) { + view = widget(n); + if (view) { + ptr = static_cast(view); + ptr->makeVisible(visible); + } } } } @@ -559,7 +559,7 @@ Frame* coreFrame = core(this); - unsigned int dist = 0xFFFFFFFF; + int dist = 99999999; Node* result = 0; //for (Node* n=links->firstItem(); n; n=links->nextItem()) { for(Node* n = coreFrame->document(); n != 0; n = n->traverseNextNode()) { @@ -573,7 +573,7 @@ int x = xInRect(r, pt.x()); int y = yInRect(r, pt.y()); - unsigned int d = (pt.x() - x) * (pt.x() - x) + (pt.y() - y) * (pt.y() - y); + int d = (pt.x() - x) * (pt.x() - x) + (pt.y() - y) * (pt.y() - y); if (dist > d) { dist = d; result = n; @@ -582,7 +582,7 @@ } // check if we are close enough and calcualte with zoom factor. - if (result && dist< (400/m_view->topView()->scalingFactor() * 100)) { + if (dist< (400/m_view->topView()->scalingFactor() * 100)) { IntRect r = result->getRect(); r.inflate(-2); TPoint docPos(xInRect(r, pt.x()), yInRect(r, pt.y())); @@ -593,82 +593,4 @@ return 0; } -void WebFrame::ScrollOrPinchStatus(bool status) -{ - PluginHandler* plghandler = StaticObjectsContainer::instance()->pluginHandler(); - WTF::HashSet pluginObjs = plghandler->pluginObjects(); - for(WTF::HashSet::iterator it = pluginObjs.begin() ; it != pluginObjs.end() ; ++it ) - { - PluginSkin* plg = static_cast (*it); - WebFrame* plgWebFrame = plg->getWebFrame(); - CBrCtl* plbrCtl = control(plg->frame()); - CBrCtl* pgbrCtl = control(this); - - if(plbrCtl == pgbrCtl) - { - plg->NotifyPluginsForScrollOrPinch(status); - } - } - - -} - -void WebFrame::notifyPluginFocusChangeEvent(TBool visible) -{ - MWebCoreObjectWidget* view = NULL; - Frame* coreFrame = core(this); - - 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 && static_cast(view)->isFlashPlugin()) { - if(visible) - static_cast(view)->HandleGainingForeground(); - else - static_cast(view)->HandleLosingForeground(); - } - } - - PassRefPtr embeds = frame->document()->embeds(); - for (Node* n = embeds->firstItem(); n; n = embeds->nextItem()) { - view = widget(n); - if (view && static_cast(view)->isFlashPlugin()) { - if(visible) - static_cast(view)->HandleGainingForeground(); - else - static_cast(view)->HandleLosingForeground(); - } - } - } - -} - -void WebFrame::reCreatePlugins() -{ - MWebCoreObjectWidget* view = NULL; - Frame* coreFrame = core(this); - PluginSkin* plg = 0; - 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) { - plg = static_cast(view); - plg->reCreatePlugin(); - } - } - PassRefPtr embeds = frame->document()->embeds(); - for (Node* n = embeds->firstItem(); n; n = embeds->nextItem()) { - view = widget(n); - if (view) { - plg = static_cast(view); - plg->reCreatePlugin(); - } - } - } -} - // END OF FILE