OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. | 4 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. |
5 * | 5 * |
6 * This library is free software; you can redistribute it and/or | 6 * This library is free software; you can redistribute it and/or |
7 * modify it under the terms of the GNU Library General Public | 7 * modify it under the terms of the GNU Library General Public |
8 * License as published by the Free Software Foundation; either | 8 * License as published by the Free Software Foundation; either |
9 * version 2 of the License, or (at your option) any later version. | 9 * version 2 of the License, or (at your option) any later version. |
10 * | 10 * |
(...skipping 817 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
828 result.addNodeToRectBasedTestResult(node(), request, locationInContainer ); | 828 result.addNodeToRectBasedTestResult(node(), request, locationInContainer ); |
829 return regionResult.contains(tmpLocation.boundingBox()); | 829 return regionResult.contains(tmpLocation.boundingBox()); |
830 } | 830 } |
831 return false; | 831 return false; |
832 } | 832 } |
833 | 833 |
834 PositionWithAffinity RenderInline::positionForPoint(const LayoutPoint& point) | 834 PositionWithAffinity RenderInline::positionForPoint(const LayoutPoint& point) |
835 { | 835 { |
836 // FIXME: Does not deal with relative positioned inlines (should it?) | 836 // FIXME: Does not deal with relative positioned inlines (should it?) |
837 RenderBlock* cb = containingBlock(); | 837 RenderBlock* cb = containingBlock(); |
838 if (firstLineBox()) { | 838 if (firstLineBoxIncludingCulling()) { |
pdr.
2015/02/16 20:24:09
There are 35 other callers of firstLineBox(). Is t
Miyoung Shin(g)
2015/02/17 05:01:54
We need only this to solve the problem that flicke
| |
839 // This inline actually has a line box. We must have clicked in the bor der/padding of one of these boxes. We | 839 // This inline actually has a line box. We must have clicked in the bor der/padding of one of these boxes. We |
840 // should try to find a result by asking our containing block. | 840 // should try to find a result by asking our containing block. |
841 return cb->positionForPoint(point); | 841 return cb->positionForPoint(point); |
842 } | 842 } |
843 | 843 |
844 // Translate the coords from the pre-anonymous block to the post-anonymous b lock. | 844 // Translate the coords from the pre-anonymous block to the post-anonymous b lock. |
845 LayoutPoint parentBlockPoint = cb->location() + point; | 845 LayoutPoint parentBlockPoint = cb->location() + point; |
846 RenderBoxModelObject* c = continuation(); | 846 RenderBoxModelObject* c = continuation(); |
847 while (c) { | 847 while (c) { |
848 RenderBox* contBlock = c->isInline() ? c->containingBlock() : toRenderBl ock(c); | 848 RenderBox* contBlock = c->isInline() ? c->containingBlock() : toRenderBl ock(c); |
(...skipping 603 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1452 } | 1452 } |
1453 | 1453 |
1454 void RenderInline::invalidateDisplayItemClients(DisplayItemList* displayItemList ) const | 1454 void RenderInline::invalidateDisplayItemClients(DisplayItemList* displayItemList ) const |
1455 { | 1455 { |
1456 RenderBoxModelObject::invalidateDisplayItemClients(displayItemList); | 1456 RenderBoxModelObject::invalidateDisplayItemClients(displayItemList); |
1457 for (InlineFlowBox* box = firstLineBox(); box; box = box->nextLineBox()) | 1457 for (InlineFlowBox* box = firstLineBox(); box; box = box->nextLineBox()) |
1458 displayItemList->invalidate(box->displayItemClient()); | 1458 displayItemList->invalidate(box->displayItemClient()); |
1459 } | 1459 } |
1460 | 1460 |
1461 } // namespace blink | 1461 } // namespace blink |
OLD | NEW |