OSDN Git Service

Support spellcheck on text areas
[android-x86/external-webkit.git] / Source / WebKit / android / nav / CacheBuilder.cpp
index a31169b..c167812 100644 (file)
@@ -1246,6 +1246,7 @@ void CacheBuilder::BuildFrame(Frame* root, Frame* frame,
                 type = TEXT_INPUT_CACHEDNODETYPE;
                 cachedInput.init();
                 cachedInput.setAutoComplete(input->autoComplete());
+                cachedInput.setSpellcheck(input->spellcheck());
                 cachedInput.setFormPointer(input->form());
                 cachedInput.setIsTextField(true);
                 exported = input->value().threadsafeCopy();
@@ -1268,6 +1269,7 @@ void CacheBuilder::BuildFrame(Frame* root, Frame* frame,
             type = TEXT_INPUT_CACHEDNODETYPE;
             cachedInput.setFormPointer(area->form());
             cachedInput.setIsTextArea(true);
+            cachedInput.setSpellcheck(area->spellcheck());
             exported = area->value().threadsafeCopy();
         } else if (node->hasTagName(HTMLNames::aTag)) {
             const HTMLAnchorElement* anchorNode = 
@@ -1405,7 +1407,6 @@ void CacheBuilder::BuildFrame(Frame* root, Frame* frame,
             else if (cachedNode.clip(clip) == false)
                 continue; // skip this node if outside of the clip
         }
-        cachedNode.setNavableRects();
         cachedNode.setColorIndex(colorIndex);
         cachedNode.setExport(exported);
         cachedNode.setHasCursorRing(hasCursorRing);
@@ -1477,7 +1478,6 @@ bool CacheBuilder::CleanUpContainedNodes(CachedRoot* cachedRoot,
             lastNode->hasTagName(HTMLNames::formTag)) {
         lastCached->setBounds(IntRect(0, 0, 0, 0));
         lastCached->mCursorRing.clear();
-        lastCached->setNavableRects();
         return false;
     }
     CachedNode* onlyChildCached = cachedFrame->lastNode();
@@ -2883,8 +2883,6 @@ bool CacheBuilder::setData(CachedFrame* cachedFrame)
     RenderLayer* layer = renderer->enclosingLayer();
     if (layer == NULL)
         return false;
-    if (layer->width() == 0 || layer->height() == 0)
-        return false;
     if (!frame->view())
         return false;
     int x, y;
@@ -2893,7 +2891,7 @@ bool CacheBuilder::setData(CachedFrame* cachedFrame)
     if ((x | y) != 0)
         viewBounds.setLocation(WebCore::IntPoint(x, y));
     cachedFrame->setLocalViewBounds(viewBounds);
-    cachedFrame->setContentsSize(layer->width(), layer->height());
+    cachedFrame->setContentsSize(layer->scrollWidth(), layer->scrollHeight());
     if (cachedFrame->childCount() == 0)
         return true;
     CachedFrame* lastCachedFrame = cachedFrame->lastChild();