webkit超链接出现两个焦点框解决方案

void RenderInline::addFocusRingRects(GraphicsContext* graphicsContext, int tx, int ty)

{

 //   DB("RenderInline::addFocusRingRects/n");

    for (InlineRunBox* curr = firstLineBox(); curr; curr = curr->nextLineBox()) {

        RootInlineBox* root = curr->root();

        int top = max(root->lineTop(), curr->y());

        int bottom = min(root->lineBottom(), curr->y() + curr->height());

        graphicsContext->clearFocusRing();

        graphicsContext->addFocusRingRect(IntRect(tx + curr->x(), ty + top, curr->width(), bottom - top));

 //       DB("for InlineRunBox(%d,%d)/n",curr->width(),bottom - top);

    }

 

    for (RenderObject* curr = firstChild(); curr; curr = curr->nextSibling()) {

        if (!curr->isText() && !curr->isListMarker()) {

            FloatPoint pos(tx, ty);

            // FIXME: This doesn't work correctly with transforms.

            if (curr->hasLayer()) 

                pos = curr->localToAbsolute();

            else if (curr->isBox())

                pos.move(toRenderBox(curr)->x(), toRenderBox(curr)->y());

            graphicsContext->clearFocusRing();

            curr->addFocusRingRects(graphicsContext, pos.x(), pos.y());

 //           DB("!curr->isText() && !curr->isListMarker()/n");

        }

    }

 

    if (continuation()) {

        if (continuation()->isInline())

        {

            continuation()->addFocusRingRects(graphicsContext, 

                                              tx - containingBlock()->x() + continuation()->containingBlock()->x(),

                                              ty - containingBlock()->y() + continuation()->containingBlock()->y());

 //       DB("continuation()->isInline()/n");

        }

            else

        {

            continuation()->addFocusRingRects(graphicsContext, 

                                              tx - containingBlock()->x() + toRenderBox(continuation())->x(),

                                              ty - containingBlock()->y() + toRenderBox(continuation())->y());

//        DB("continuation()->isInline() else/n");

        }

        }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值