I have a nsSelectsAreaFrame (which is just an nsAreaFrame for reflow purposes) doing the following:

Area(select)(1)@0x88657d0: GetPrefWidth
  line 0 (inline,empty)
    pref: [prevLines=0 currentLine=0]
  line 1 (block)
    Block(option)(1)@0x86dcc88: GetPrefWidth
      line 0 (inline)
        pref: [prevLines=0 currentLine=168]
    pref: [prevLines=224 currentLine=0]
Area(select)(1)@0x88657d0: GetMinWidth
  line 0 (inline,empty)
    min: [prevLines=0 currentLine=0]
  line 1 (block)
    Block(option)(1)@0x86dcc88: GetMinWidth
      line 0 (inline)
        min: [prevLines=0 currentLine=168]
    min: [prevLines=280 currentLine=0]

Note that the return value of GetMinWidth is larger than that of GetPrefWidth! This triggers some asserts I added to nsHTMLReflowState.

I tracked this down to the fact that nsIFrame::InlinePrefWidthData::Break subtracts off trailingWhitespace from currentLine, while nsIFrame::InlineMinWidthData::Break does not. Should the latter be subtracting it off as well? Or is my assertion that GetPrefWidth() >= GetMinWidth() not something I can assert?

-Boris
_______________________________________________
dev-tech-layout mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-layout

Reply via email to