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

Side by Side Diff: Source/WebCore/editing/FrameSelection.h

Issue 11886010: Merge 139282 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1364/
Patch Set: Created 7 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 unified diff | Download patch
« no previous file with comments | « Source/WebCore/ChangeLog ('k') | Source/WebCore/editing/FrameSelection.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved. 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 WTF_MAKE_NONCOPYABLE(CaretBase); 58 WTF_MAKE_NONCOPYABLE(CaretBase);
59 WTF_MAKE_FAST_ALLOCATED; 59 WTF_MAKE_FAST_ALLOCATED;
60 protected: 60 protected:
61 enum CaretVisibility { Visible, Hidden }; 61 enum CaretVisibility { Visible, Hidden };
62 explicit CaretBase(CaretVisibility = Hidden); 62 explicit CaretBase(CaretVisibility = Hidden);
63 63
64 void invalidateCaretRect(Node*, bool caretRectChanged = false); 64 void invalidateCaretRect(Node*, bool caretRectChanged = false);
65 void clearCaretRect(); 65 void clearCaretRect();
66 bool updateCaretRect(Document*, const VisiblePosition& caretPosition); 66 bool updateCaretRect(Document*, const VisiblePosition& caretPosition);
67 IntRect absoluteBoundsForLocalRect(Node*, const LayoutRect&) const; 67 IntRect absoluteBoundsForLocalRect(Node*, const LayoutRect&) const;
68 IntRect caretRepaintRect(Node*) const;
69 bool shouldRepaintCaret(const RenderView*, bool isContentEditable) const; 68 bool shouldRepaintCaret(const RenderView*, bool isContentEditable) const;
70 void paintCaret(Node*, GraphicsContext*, const LayoutPoint&, const LayoutRec t& clipRect) const; 69 void paintCaret(Node*, GraphicsContext*, const LayoutPoint&, const LayoutRec t& clipRect) const;
71 RenderObject* caretRenderer(Node*) const;
72 70
73 const LayoutRect& localCaretRectWithoutUpdate() const { return m_caretLocalR ect; } 71 const LayoutRect& localCaretRectWithoutUpdate() const { return m_caretLocalR ect; }
74 72
75 bool shouldUpdateCaretRect() const { return m_caretRectNeedsUpdate; } 73 bool shouldUpdateCaretRect() const { return m_caretRectNeedsUpdate; }
76 void setCaretRectNeedsUpdate() { m_caretRectNeedsUpdate = true; } 74 void setCaretRectNeedsUpdate() { m_caretRectNeedsUpdate = true; }
77 75
78 void setCaretVisibility(CaretVisibility visibility) { m_caretVisibility = vi sibility; } 76 void setCaretVisibility(CaretVisibility visibility) { m_caretVisibility = vi sibility; }
79 bool caretIsVisible() const { return m_caretVisibility == Visible; } 77 bool caretIsVisible() const { return m_caretVisibility == Visible; }
80 CaretVisibility caretVisibility() const { return m_caretVisibility; } 78 CaretVisibility caretVisibility() const { return m_caretVisibility; }
81 79
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 bool visualWordMovementEnabled() const; 293 bool visualWordMovementEnabled() const;
296 294
297 Frame* m_frame; 295 Frame* m_frame;
298 296
299 LayoutUnit m_xPosForVerticalArrowNavigation; 297 LayoutUnit m_xPosForVerticalArrowNavigation;
300 298
301 VisibleSelection m_selection; 299 VisibleSelection m_selection;
302 VisiblePosition m_originalBase; // Used to store base before the adjustment at bidi boundary 300 VisiblePosition m_originalBase; // Used to store base before the adjustment at bidi boundary
303 TextGranularity m_granularity; 301 TextGranularity m_granularity;
304 302
303 RefPtr<Node> m_previousCaretNode; // The last node which painted the caret. Retained for clearing the old caret when it moves.
304
305 RefPtr<EditingStyle> m_typingStyle; 305 RefPtr<EditingStyle> m_typingStyle;
306 306
307 Timer<FrameSelection> m_caretBlinkTimer; 307 Timer<FrameSelection> m_caretBlinkTimer;
308 // The painted bounds of the caret in absolute coordinates 308 // The painted bounds of the caret in absolute coordinates
309 IntRect m_absCaretBounds; 309 IntRect m_absCaretBounds;
310 // Similar to above, but inflated to ensure proper repaint (see https://bugs .webkit.org/show_bug.cgi?id=19086)
311 IntRect m_absoluteCaretRepaintBounds;
312 bool m_absCaretBoundsDirty : 1; 310 bool m_absCaretBoundsDirty : 1;
313 bool m_caretPaint : 1; 311 bool m_caretPaint : 1;
314 bool m_isCaretBlinkingSuspended : 1; 312 bool m_isCaretBlinkingSuspended : 1;
315 bool m_focused : 1; 313 bool m_focused : 1;
316 }; 314 };
317 315
318 inline EditingStyle* FrameSelection::typingStyle() const 316 inline EditingStyle* FrameSelection::typingStyle() const
319 { 317 {
320 return m_typingStyle.get(); 318 return m_typingStyle.get();
321 } 319 }
(...skipping 16 matching lines...) Expand all
338 336
339 } // namespace WebCore 337 } // namespace WebCore
340 338
341 #ifndef NDEBUG 339 #ifndef NDEBUG
342 // Outside the WebCore namespace for ease of invocation from gdb. 340 // Outside the WebCore namespace for ease of invocation from gdb.
343 void showTree(const WebCore::FrameSelection&); 341 void showTree(const WebCore::FrameSelection&);
344 void showTree(const WebCore::FrameSelection*); 342 void showTree(const WebCore::FrameSelection*);
345 #endif 343 #endif
346 344
347 #endif // FrameSelection_h 345 #endif // FrameSelection_h
OLDNEW
« no previous file with comments | « Source/WebCore/ChangeLog ('k') | Source/WebCore/editing/FrameSelection.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698