Index: third_party/WebKit/Source/core/editing/FrameCaret.h |
diff --git a/third_party/WebKit/Source/core/editing/FrameCaret.h b/third_party/WebKit/Source/core/editing/FrameCaret.h |
index cbe7ead1804cc3b831d1a45a04d6299c70f24b72..1bec7be8854d90b1d7a695c39f117beef78efb42 100644 |
--- a/third_party/WebKit/Source/core/editing/FrameCaret.h |
+++ b/third_party/WebKit/Source/core/editing/FrameCaret.h |
@@ -38,11 +38,10 @@ |
namespace blink { |
class CaretDisplayItemClient; |
-class CharacterData; |
class DisplayItemClient; |
class Document; |
class GraphicsContext; |
-class Node; |
+class LayoutBlock; |
class LocalFrame; |
class SelectionEditor; |
@@ -57,7 +56,9 @@ class CORE_EXPORT FrameCaret final |
FrameCaret(LocalFrame&, const SelectionEditor&); |
~FrameCaret(); |
- const DisplayItemClient& displayItemClient() const; |
+ void setVisualRect(const LayoutRect&); |
+ const DisplayItemClient& getDisplayItemClient() const; |
+ |
bool isActive() const { return caretPosition().isNotNull(); } |
void documentAttached(Document*); |
@@ -70,24 +71,23 @@ class CORE_EXPORT FrameCaret final |
bool isCaretBlinkingSuspended() const { return m_isCaretBlinkingSuspended; } |
void stopCaretBlinkTimer(); |
void startBlinkCaret(); |
- |
void setCaretVisibility(CaretVisibility); |
- void setCaretRectNeedsUpdate(); |
- // If |forceInvalidation| is true the caret's previous and new rectangles |
- // are forcibly invalidated regardless of the state of the blink timer. |
- void invalidateCaretRect(bool forceInvalidation); |
IntRect absoluteCaretBounds() const; |
+ // Return the caret rect in local coordinate space of |caretLayoutBlock|. |
wkorman
2017/01/31 20:40:28
Suggest adding to comment to define rect more expl
|
+ LayoutRect caretLocalRect() const; |
+ LayoutBlock* caretLayoutBlock() const; |
+ |
+ void setMayNeedPaintInvalidation(); |
+ void setNeedsPaintInvalidation(); |
+ |
bool shouldShowBlockCursor() const { return m_shouldShowBlockCursor; } |
void setShouldShowBlockCursor(bool); |
void paintCaret(GraphicsContext&, const LayoutPoint&); |
- void dataWillChange(const CharacterData&); |
- |
// For unittests |
bool shouldPaintCaretForTesting() const { return m_shouldPaintCaret; } |
- bool isPreviousCaretDirtyForTesting() const { return m_previousCaretNode; } |
DECLARE_TRACE(); |
@@ -102,21 +102,15 @@ class CORE_EXPORT FrameCaret final |
// Implementation of |SynchronousMutationObserver| member functions. |
void contextDestroyed(Document*) final; |
yosin_UTC9
2017/01/31 20:12:58
Since FrameCaret doesn't hold |Node| anymore, Fram
Xianzhu
2017/02/02 23:42:06
Great. Done.
|
- void nodeWillBeRemoved(Node&) final; |
+ |
+ void scheduleVisualUpdate(); |
const Member<const SelectionEditor> m_selectionEditor; |
const Member<LocalFrame> m_frame; |
const std::unique_ptr<CaretDisplayItemClient> m_caretBase; |
- // The last node which painted the caret. Retained for clearing the old |
- // caret when it moves. |
- Member<Node> m_previousCaretNode; |
- Member<Node> m_previousCaretAnchorNode; |
- LayoutRect m_previousCaretRect; |
CaretVisibility m_caretVisibility; |
- CaretVisibility m_previousCaretVisibility; |
// TODO(https://crbug.com/668758): Consider using BeginFrame update for this. |
TaskRunnerTimer<FrameCaret> m_caretBlinkTimer; |
- bool m_caretRectDirty : 1; |
bool m_shouldPaintCaret : 1; |
bool m_isCaretBlinkingSuspended : 1; |
bool m_shouldShowBlockCursor : 1; |