gecko-dev/layout/generic
Robert O'Callahan a1480fca87 Bug 1048752. Part 19: Create nsCaret::GetPaintGeometry to call during painting. r=tn
This is the start of the changes to caret-drawing proper.

The idea is to combine GetCaretFrame and GetCaretRect into a method
GetPaintGeometry which looks like GetGeometry but returns values
needed for painting (i.e. including bidi decorations, and returning
a null frame if we're not supposed to paint due to specific caret
state, e.g. in the "off" phase of the blink cycle).

Mostly a straightforward refactoring but there are a few interesting changes:
-- nsDisplayCaret stores its bounds instead of getting them from nsCaret on
demand. Eventually those bounds will not be stored in nsCaret at all.
-- nsDisplayCaret::GetBounds returns true for aSnap. nsCaret draws snapped
rects, so why not.
-- I removed "if (caretRect.Intersects(aDirtyRect))" in EnterPresShell.
As far as I can tell, this check is incorrect because it doesn't take
transforms into account. Since there's at most one drawn caret per window,
hence we do this at most once per paint, I don't think there's any real
performance advantage to having this check.

--HG--
extra : rebase_source : c98d3a5994478b482d19cc2e2ac83ab51bd17e00
2014-08-06 17:19:28 +12:00
..
crashtests Bug 1041247 - Allow font inflation test to pass in e10s (r=dbaron) 2014-07-25 16:00:03 -07:00
test Backed out 3 changesets (bug 1022818) for B2G test failures on a CLOSED TREE. 2014-08-01 11:14:14 -04:00
FrameChildList.cpp
FrameChildList.h Bug 1048246 - Fix more bad implicit constructors in layout; r=roc 2014-08-07 19:48:38 -04:00
MathMLTextRunFactory.cpp Bug 1027354 - Fix fontweight and fontstyle on single char <mi>. r=roc 2014-06-25 05:20:00 -04:00
MathMLTextRunFactory.h Bug 1027354 - Fix fontweight and fontstyle on single char <mi>. r=roc 2014-06-25 05:20:00 -04:00
ScrollbarActivity.cpp Bug 900908 - Part 3: Change uses of numbered macros in nsIClassInfoImpl.h/nsISupportsImpl.h to the variadic variants. r=froydnj 2014-04-27 03:06:00 -04:00
ScrollbarActivity.h Bug 1028588 - Fix dangerous public destructors in layout/ - r=dbaron 2014-06-23 18:40:01 -04:00
Selection.h Bug 1048246 - Fix more bad implicit constructors in layout; r=roc 2014-08-07 19:48:38 -04:00
StickyScrollContainer.cpp Bug 1028460 - part 3, Change the return type for Get*SkipSides(). r=roc 2014-06-28 10:13:13 +00:00
StickyScrollContainer.h Bug 1026535 - Fix mismatched class/struct tags. r=ehsan 2014-06-18 17:57:51 -07:00
TextOverflow.cpp Bug 1048752. Part 17: Rename Get/SetCaretDOMSelection to Get/SetSelection. r=tn 2014-08-06 17:19:27 +12:00
TextOverflow.h bug 1031241 pt 3 - Also rename Intrinsic{Width,Height} to Intrinsic{I,B}Size. r=smontagu 2014-07-24 18:03:26 +01:00
WritingModes.h Bug 1048246 - Fix more bad implicit constructors in layout; r=roc 2014-08-07 19:48:38 -04:00
broken-image.png
folder.png
frame-graph.py
frame-verify.js
jar.mn
loading-image.png
moz.build Bug 1042878 - part 2 - move MOZ_CAIRO_CFLAGS et al additions to C*FLAGS into moz.build; r=glandium 2014-07-24 11:55:33 -04:00
nsAbsoluteContainingBlock.cpp Bug 789096 patch 9: use logical coordinates in nsHTMLReflowState available size. r=jfkthame 2014-07-24 01:28:46 -07:00
nsAbsoluteContainingBlock.h Bug 1026535 - Fix mismatched class/struct tags. r=ehsan 2014-06-18 17:57:51 -07:00
nsAutoCopyListener.h Bug 1028588 - Fix dangerous public destructors in layout/ - r=dbaron 2014-06-23 18:40:01 -04:00
nsBRFrame.cpp Bug 1048752. Part 16: Move nsFrameSelection::HINT to CaretAssociationHint.h. r=tn 2014-08-06 17:19:27 +12:00
nsBlockDebugFlags.h Bug 789096 patch 7: Use logical coordinates in nsBlockReflowContext. r=jfkthame 2014-06-17 07:41:35 -07:00
nsBlockFrame.cpp Bug 1048752. Part 16: Move nsFrameSelection::HINT to CaretAssociationHint.h. r=tn 2014-08-06 17:19:27 +12:00
nsBlockFrame.h bug 1031241 pt 3 - Also rename Intrinsic{Width,Height} to Intrinsic{I,B}Size. r=smontagu 2014-07-24 18:03:26 +01:00
nsBlockReflowContext.cpp Bug 789096 patch 10: make Reflow set nsHTMLReflowMetrics.ISize and BSize instead of Width and Height. r=jfkthame 2014-07-24 01:30:07 -07:00
nsBlockReflowContext.h Bug 789096 patch 7: Use logical coordinates in nsBlockReflowContext. r=jfkthame 2014-06-17 07:41:35 -07:00
nsBlockReflowState.cpp bug 1031241 pt 4 - Rename the {MIN,PREF}_WIDTH constants used to identify the type of intrinsic inline-size. r=smontagu 2014-07-24 18:03:26 +01:00
nsBlockReflowState.h Bug 789096 patch 9: use logical coordinates in nsHTMLReflowState available size. r=jfkthame 2014-07-24 01:28:46 -07:00
nsBulletFrame.cpp bug 1031241 pt 1 - Rename Get{Min,Pref}Width to Get{Min,Pref}ISize throughout layout. r=dbaron,smontagu 2014-07-24 18:03:25 +01:00
nsBulletFrame.h bug 1031241 pt 1 - Rename Get{Min,Pref}Width to Get{Min,Pref}ISize throughout layout. r=dbaron,smontagu 2014-07-24 18:03:25 +01:00
nsCanvasFrame.cpp bug 1016545 - Provide an iterator that iterates over all children of an element r=bz 2014-07-16 14:41:57 -04:00
nsCanvasFrame.h Bug 1045864 - Disable layerized background-attachment:fixed when we're using a software compositor. r=roc 2014-08-05 15:25:00 +12:00
nsColumnSetFrame.cpp bug 1031241 pt 1 - Rename Get{Min,Pref}Width to Get{Min,Pref}ISize throughout layout. r=dbaron,smontagu 2014-07-24 18:03:25 +01:00
nsColumnSetFrame.h bug 1031241 pt 1 - Rename Get{Min,Pref}Width to Get{Min,Pref}ISize throughout layout. r=dbaron,smontagu 2014-07-24 18:03:25 +01:00
nsContainerFrame.cpp bug 1031241 pt 4 - Rename the {MIN,PREF}_WIDTH constants used to identify the type of intrinsic inline-size. r=smontagu 2014-07-24 18:03:26 +01:00
nsContainerFrame.h Bug 1048246 - Fix more bad implicit constructors in layout; r=roc 2014-08-07 19:48:38 -04:00
nsDirection.h
nsFirstLetterFrame.cpp bug 1031241 pt 4 - Rename the {MIN,PREF}_WIDTH constants used to identify the type of intrinsic inline-size. r=smontagu 2014-07-24 18:03:26 +01:00
nsFirstLetterFrame.h bug 1031241 pt 2 - More renaming, e.g. where {Min,Pref}Width occurs within longer type and function names. r=smontagu 2014-07-24 18:03:25 +01:00
nsFlexContainerFrame.cpp Bug 1032922 part 2: Rename flex-basis's "auto" keyword to "main-size" (but retain "flex:auto" as shorthand for "1 1 main-size"). r=heycam 2014-08-07 22:11:48 -07:00
nsFlexContainerFrame.h bug 1031241 pt 1 - Rename Get{Min,Pref}Width to Get{Min,Pref}ISize throughout layout. r=dbaron,smontagu 2014-07-24 18:03:25 +01:00
nsFloatManager.cpp Bug 978443 - Rename NS_STYLE_CLEAR_LEFT_AND_RIGHT to NS_STYLE_CLEAR_BOTH. r=dholbert 2014-03-02 17:42:16 +00:00
nsFloatManager.h
nsFontInflationData.cpp Bug 789096 patch 9: use logical coordinates in nsHTMLReflowState available size. r=jfkthame 2014-07-24 01:28:46 -07:00
nsFontInflationData.h Bug 508665 - part 1, Change the signature of SetParent/GetParent from nsIFrame* to nsContainerFrame*. r=roc 2014-05-24 22:20:39 +00:00
nsFrame.cpp Bug 1048752. Part 19: Create nsCaret::GetPaintGeometry to call during painting. r=tn 2014-08-06 17:19:28 +12:00
nsFrame.h Bug 1048246 - Fix more bad implicit constructors in layout; r=roc 2014-08-07 19:48:38 -04:00
nsFrameIdList.h Bug 1021952 - Add ruby display values and ruby frames. r=dholbert,bz 2014-07-22 19:08:01 -07:00
nsFrameList.cpp Bug 508665 - part 6, Require a nsContainerFrame* for aParent in nsFrameList methods. r=roc 2014-05-24 22:20:40 +00:00
nsFrameList.h Bug 1048246 - Fix more bad implicit constructors in layout; r=roc 2014-08-07 19:48:38 -04:00
nsFrameSelection.h Bug 1048752. Part 16: Move nsFrameSelection::HINT to CaretAssociationHint.h. r=tn 2014-08-06 17:19:27 +12:00
nsFrameSetFrame.cpp bug 1031241 pt 3 - Also rename Intrinsic{Width,Height} to Intrinsic{I,B}Size. r=smontagu 2014-07-24 18:03:26 +01:00
nsFrameSetFrame.h Bug 789096 patch 10: make Reflow set nsHTMLReflowMetrics.ISize and BSize instead of Width and Height. r=jfkthame 2014-07-24 01:30:07 -07:00
nsFrameState.cpp Bug 869836 - Part 12: Use `Assign('c')` instead of `AssignLiteral("c")`. r=ehsan 2014-05-26 21:55:08 +03:00
nsFrameState.h
nsFrameStateBits.h Bug 1014252. Optimize clearing of textruns via RemoveInFlows. r=matspal 2014-05-28 15:39:25 +12:00
nsFrameUtil.cpp Bug 1028588 - Fix dangerous public destructors in layout/ - r=dbaron 2014-06-23 18:40:01 -04:00
nsGfxScrollFrame.cpp Bug 1050096. Clip scrollparts to the viewport for root scrollframes. r=tnikkel 2014-08-09 01:00:53 +12:00
nsGfxScrollFrame.h bug 1016545 - Provide an iterator that iterates over all children of an element r=bz 2014-07-16 14:41:57 -04:00
nsGridContainerFrame.cpp Bug 789096 patch 10: make Reflow set nsHTMLReflowMetrics.ISize and BSize instead of Width and Height. r=jfkthame 2014-07-24 01:30:07 -07:00
nsGridContainerFrame.h Bug 508665 - part 4, Make nsCSSFrameConstructor use nsContainerFrame* for frames used as parent frames. r=roc 2014-05-24 22:20:40 +00:00
nsHTMLCanvasFrame.cpp bug 1031241 pt 1 - Rename Get{Min,Pref}Width to Get{Min,Pref}ISize throughout layout. r=dbaron,smontagu 2014-07-24 18:03:25 +01:00
nsHTMLCanvasFrame.h bug 1031241 pt 1 - Rename Get{Min,Pref}Width to Get{Min,Pref}ISize throughout layout. r=dbaron,smontagu 2014-07-24 18:03:25 +01:00
nsHTMLParts.h Bug 508665 - part 4, Make nsCSSFrameConstructor use nsContainerFrame* for frames used as parent frames. r=roc 2014-05-24 22:20:40 +00:00
nsHTMLReflowMetrics.cpp bug 735577 - followup 1 (v2) - allow reflow-state to be passed to the reflow-metrics constructor to get the writing mode. r=roc 2013-12-31 13:50:31 +00:00
nsHTMLReflowMetrics.h Bug 1048246 - Fix more bad implicit constructors in layout; r=roc 2014-08-07 19:48:38 -04:00
nsHTMLReflowState.cpp bug 1031241 pt 3 - Also rename Intrinsic{Width,Height} to Intrinsic{I,B}Size. r=smontagu 2014-07-24 18:03:26 +01:00
nsHTMLReflowState.h Bug 789096 patch 9: use logical coordinates in nsHTMLReflowState available size. r=jfkthame 2014-07-24 01:28:46 -07:00
nsIAnonymousContentCreator.h bug 1016545 - Provide an iterator that iterates over all children of an element r=bz 2014-07-16 14:41:57 -04:00
nsIFrame.h Bug 1048752. Part 16: Move nsFrameSelection::HINT to CaretAssociationHint.h. r=tn 2014-08-06 17:19:27 +12:00
nsIFrameInlines.h Bug 508665 - part 15, s/mParent/GetParent()/ in a bunch of nsIFrame sub-classes. r=roc 2014-05-24 22:20:41 +00:00
nsIFrameUtil.h
nsILineIterator.h Bug 491863 - Remove IBMBIDI; r=roc 2014-04-23 21:15:29 -04:00
nsIObjectFrame.h
nsIPageSequenceFrame.h
nsIScrollPositionListener.h
nsIScrollableFrame.h Bug 1026023 - Part 4: Allow smooth scrolling to override momentum mouse wheel scroll events. r=mwoodrow 2014-07-15 16:13:00 +02:00
nsIScrollbarOwner.h
nsIStatefulFrame.h
nsImageFrame.cpp Bug 1048752. Part 9: Remove nsCaret.h from nsDisplayList.h. r=tn 2014-08-06 17:19:25 +12:00
nsImageFrame.h Bug 1048752. Part 9: Remove nsCaret.h from nsDisplayList.h. r=tn 2014-08-06 17:19:25 +12:00
nsImageMap.cpp Bug 981924 - Update ReportToConsole calls in layout code to use the right category. r=dbaron 2014-08-11 16:52:01 -07:00
nsImageMap.h
nsInlineFrame.cpp Bug 1030993 - Basic reflow implementation for ruby frame classes. r=dbaron 2014-08-15 10:34:20 -07:00
nsInlineFrame.h bug 1031241 pt 2 - More renaming, e.g. where {Min,Pref}Width occurs within longer type and function names. r=smontagu 2014-07-24 18:03:25 +01:00
nsIntervalSet.cpp
nsIntervalSet.h
nsLeafFrame.cpp bug 1031241 pt 3 - Also rename Intrinsic{Width,Height} to Intrinsic{I,B}Size. r=smontagu 2014-07-24 18:03:26 +01:00
nsLeafFrame.h Bug 1048246 - Fix more bad implicit constructors in layout; r=roc 2014-08-07 19:48:38 -04:00
nsLineBox.cpp Bug 789096 patch 8: use logical coordinates in nsBlockReflowState. r=jfkthame 2014-06-20 02:55:35 -07:00
nsLineBox.h Bug 1050009 - Initialize pldhash tables with a length, not a capacity. r=roc. 2014-08-06 06:31:21 -07:00
nsLineLayout.cpp Bug 1030993 - Basic reflow implementation for ruby frame classes. r=dbaron 2014-08-15 10:34:20 -07:00
nsLineLayout.h Bug 1030993 - Basic reflow implementation for ruby frame classes. r=dbaron 2014-08-15 10:34:20 -07:00
nsObjectFrame.cpp bug 1031241 pt 1 - Rename Get{Min,Pref}Width to Get{Min,Pref}ISize throughout layout. r=dbaron,smontagu 2014-07-24 18:03:25 +01:00
nsObjectFrame.h bug 1031241 pt 1 - Rename Get{Min,Pref}Width to Get{Min,Pref}ISize throughout layout. r=dbaron,smontagu 2014-07-24 18:03:25 +01:00
nsPageContentFrame.cpp Bug 789096 patch 10: make Reflow set nsHTMLReflowMetrics.ISize and BSize instead of Width and Height. r=jfkthame 2014-07-24 01:30:07 -07:00
nsPageContentFrame.h Bug 508665 - part 4, Make nsCSSFrameConstructor use nsContainerFrame* for frames used as parent frames. r=roc 2014-05-24 22:20:40 +00:00
nsPageFrame.cpp Bug 952977: More gfx::Matrix cleanup in nsDisplayTransform r=nical 2014-08-01 08:31:48 -04:00
nsPageFrame.h bug 1031241 pt 3 - Also rename Intrinsic{Width,Height} to Intrinsic{I,B}Size. r=smontagu 2014-07-24 18:03:26 +01:00
nsPlaceholderFrame.cpp bug 1031241 pt 4 - Rename the {MIN,PREF}_WIDTH constants used to identify the type of intrinsic inline-size. r=smontagu 2014-07-24 18:03:26 +01:00
nsPlaceholderFrame.h bug 1031241 pt 2 - More renaming, e.g. where {Min,Pref}Width occurs within longer type and function names. r=smontagu 2014-07-24 18:03:25 +01:00
nsPluginUtilsOSX.h
nsPluginUtilsOSX.mm
nsQueryFrame.h Bug 1048246 - Fix more bad implicit constructors in layout; r=roc 2014-08-07 19:48:38 -04:00
nsRubyBaseContainerFrame.cpp Bug 1030993 - Fix assertion failure in reftest css-ruby/ruby-whitespace-1.html. r=dbaron 2014-08-15 10:34:20 -07:00
nsRubyBaseContainerFrame.h Bug 1030993 - Fix assertion failure in reftest css-ruby/ruby-whitespace-1.html. r=dbaron 2014-08-15 10:34:20 -07:00
nsRubyBaseFrame.cpp Bug 1030993 - Fix assertion failure in reftest css-ruby/ruby-whitespace-1.html. r=dbaron 2014-08-15 10:34:20 -07:00
nsRubyBaseFrame.h Bug 1030993 - Fix assertion failure in reftest css-ruby/ruby-whitespace-1.html. r=dbaron 2014-08-15 10:34:20 -07:00
nsRubyFrame.cpp Bug 1030993 - Fix assertion failure in reftest css-ruby/ruby-whitespace-1.html. r=dbaron 2014-08-15 10:34:20 -07:00
nsRubyFrame.h Bug 1030993 - Fix assertion failure in reftest css-ruby/ruby-whitespace-1.html. r=dbaron 2014-08-15 10:34:20 -07:00
nsRubyTextContainerFrame.cpp Bug 1030993 - Basic reflow implementation for ruby frame classes. r=dbaron 2014-08-15 10:34:20 -07:00
nsRubyTextContainerFrame.h Bug 1030993 - Basic reflow implementation for ruby frame classes. r=dbaron 2014-08-15 10:34:20 -07:00
nsRubyTextFrame.cpp Bug 1030993 - Fix assertion failure in reftest css-ruby/ruby-whitespace-1.html. r=dbaron 2014-08-15 10:34:20 -07:00
nsRubyTextFrame.h Bug 1030993 - Basic reflow implementation for ruby frame classes. r=dbaron 2014-08-15 10:34:20 -07:00
nsSelection.cpp Bug 1048752. Part 17: Rename Get/SetCaretDOMSelection to Get/SetSelection. r=tn 2014-08-06 17:19:27 +12:00
nsSimplePageSequenceFrame.cpp Bug 1050412 part 2: Assert about frame type before static_casting, and drop useless null-check. r=tn 2014-08-07 22:07:16 -07:00
nsSimplePageSequenceFrame.h Bug 508665 - part 4, Make nsCSSFrameConstructor use nsContainerFrame* for frames used as parent frames. r=roc 2014-05-24 22:20:40 +00:00
nsSplittableFrame.cpp Bug 1028460 - part 4, Remove LOGICAL_SIDE* and use the LogicalSideBits enum values instead. r=roc 2014-06-28 10:13:14 +00:00
nsSplittableFrame.h Bug 1048246 - Fix more bad implicit constructors in layout; r=roc 2014-08-07 19:48:38 -04:00
nsSubDocumentFrame.cpp bug 1031241 pt 3 - Also rename Intrinsic{Width,Height} to Intrinsic{I,B}Size. r=smontagu 2014-07-24 18:03:26 +01:00
nsSubDocumentFrame.h Bug 1048246 - Fix more bad implicit constructors in layout; r=roc 2014-08-07 19:48:38 -04:00
nsTextFrame.cpp Bug 1048752. Part 16: Move nsFrameSelection::HINT to CaretAssociationHint.h. r=tn 2014-08-06 17:19:27 +12:00
nsTextFrame.h Bug 1048752. Part 9: Remove nsCaret.h from nsDisplayList.h. r=tn 2014-08-06 17:19:25 +12:00
nsTextFrameUtils.cpp Bug 1019555 - Treat newlines and tabs as space characters in SVG xml:space="preserve" text. r=roc 2014-06-05 13:25:15 +10:00
nsTextFrameUtils.h Bug 1019555 - Treat newlines and tabs as space characters in SVG xml:space="preserve" text. r=roc 2014-06-05 13:25:15 +10:00
nsTextRunTransformations.cpp bug 1048050 - ignore region (or other) subtags when checking for language-specific casing behavior. r=smontagu 2014-08-11 09:49:11 +01:00
nsTextRunTransformations.h bug 1015603 part 6 - remove nsFontVariantTextRunFactory from layout, leaving gfx to handle small-caps. r=roc 2014-05-26 14:23:32 +01:00
nsVideoFrame.cpp bug 1016545 - Provide an iterator that iterates over all children of an element r=bz 2014-07-16 14:41:57 -04:00
nsVideoFrame.h bug 1016545 - Provide an iterator that iterates over all children of an element r=bz 2014-07-16 14:41:57 -04:00
nsViewportFrame.cpp bug 1031241 pt 1 - Rename Get{Min,Pref}Width to Get{Min,Pref}ISize throughout layout. r=dbaron,smontagu 2014-07-24 18:03:25 +01:00
nsViewportFrame.h bug 1031241 pt 1 - Rename Get{Min,Pref}Width to Get{Min,Pref}ISize throughout layout. r=dbaron,smontagu 2014-07-24 18:03:25 +01:00