Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(22)

Side by Side Diff: Source/core/rendering/RenderInline.cpp

Issue 929883003: Resolve flickering the text selection when hitting culled inline. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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()) {
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698