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

Unified Diff: third_party/WebKit/Source/core/editing/FrameSelection.h

Issue 2665823002: Invalidate caret during paint invalidation (Closed)
Patch Set: Rebaseline Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/editing/FrameSelection.h
diff --git a/third_party/WebKit/Source/core/editing/FrameSelection.h b/third_party/WebKit/Source/core/editing/FrameSelection.h
index 0ff79f1a61b23a17695589cfb12ca4cb2d7a25c8..c801d7c5b79ad580519bebca1755b3ba10175c7f 100644
--- a/third_party/WebKit/Source/core/editing/FrameSelection.h
+++ b/third_party/WebKit/Source/core/editing/FrameSelection.h
@@ -193,6 +193,13 @@ class CORE_EXPORT FrameSelection final
// called during InRecalStyle and InPaint.
bool hasCaretIn(const LayoutBlock&) const;
+ // Return the caret rect in local coordinate space of |caretLayoutBlock|.
+ LayoutRect caretLocalRect() const;
+ LayoutBlock* caretLayoutBlock() const;
+
+ void setCaretVisualRect(const LayoutRect&);
+ const DisplayItemClient& getCaretDisplayItemClient() const;
+
// Bounds of (possibly transformed) caret in absolute coords
IntRect absoluteCaretBounds();
@@ -210,17 +217,18 @@ class CORE_EXPORT FrameSelection final
Range* firstRange() const;
void documentAttached(Document*);
- void dataWillChange(const CharacterData& node);
void didLayout();
bool isAppearanceDirty() const;
void commitAppearanceIfNeeded(LayoutView&);
void setCaretVisible(bool caretIsVisible);
- void setCaretRectNeedsUpdate();
void scheduleVisualUpdate() const;
- void invalidateCaretRect(bool forceInvalidation = false);
+
void paintCaret(GraphicsContext&, const LayoutPoint&);
+ void setCaretMayNeedPaintInvalidation();
+ void setCaretNeedsPaintInvalidation();
+
// Used to suspend caret blinking while the mouse is down.
void setCaretBlinkingSuspended(bool);
bool isCaretBlinkingSuspended() const;
@@ -280,6 +288,7 @@ class CORE_EXPORT FrameSelection final
DECLARE_TRACE();
private:
+ friend class BlockPaintInvalidatorTest;
friend class FrameSelectionTest;
friend class PaintControllerPaintTestForSlimmingPaintV1AndV2;
friend class SelectionControllerTest;
@@ -288,9 +297,6 @@ class CORE_EXPORT FrameSelection final
explicit FrameSelection(LocalFrame&);
- // For |PaintControllerPaintTestForSlimmingPaintV1AndV2|.
- const DisplayItemClient& caretDisplayItemClientForTesting() const;
-
// Note: We have |selectionInFlatTree()| for unit tests, we should
// use |visibleSelection<EditingInFlatTreeStrategy>()|.
const VisibleSelectionInFlatTree& selectionInFlatTree() const;
@@ -337,7 +343,6 @@ class CORE_EXPORT FrameSelection final
// For unittests
bool shouldPaintCaretForTesting() const;
- bool isPreviousCaretDirtyForTesting() const;
Member<LocalFrame> m_frame;
const Member<PendingSelection> m_pendingSelection;

Powered by Google App Engine
This is Rietveld 408576698