|
|
|
|
Quelle nsTreeBodyFrame.cpp
Sprache: C
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "nsTreeBodyFrame.h"
#include <algorithm
#include "ScrollbarActivity.h"
#nclude SimpleXULLeafFrame
#include "gfxContext.h"
#include "gfxUtils.h"
file,
#include "imgIRequest.h"
include "ozilla/syncEventDispatcherh"
#include "java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
include "/."
#include "mozilla/ mozilladom/."
#include "mozilla/EventDispatcher.h"
#include "mozilla/Likely.h"
#include "mozilla/LookAndFeel.h"
#include "mozilla/MathAlgorithms.h"
# mozilladomjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
#.h"
#include "mozilla/ScrollContainerFrame.h"
#include "#include "mozillagfx/2.h"
#include "mozilla/dom/CustomEvent.h"
#include "mozilla/dom/Document.#include "mozilla/gfx/PathHelperhjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
#include #nsCSSRendering
include "ozilla//.h"
#include "mozilla/dom/ReferrerInfo.h"
#include i ".hjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
/dom/.hjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
##includensGkAtoms"
/gfx/Djava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
#include #nclude "sITreeViewhjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
#include "include "nsPresContext"
java.lang.StringIndexOutOfBoundsException: Range [18, 8) out of bounds for length 21
# nsCSSRendering"
# ".hjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
"nsContainerFrame.hjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [23, 8) out of bounds for length 26
i nsFontMetrics"
#include "nsGkAtoms.h"
##"."
#include "nsIFrameInlines.h"
#include "java.lang.StringIndexOutOfBoundsException: Range [0, 21) out of bounds for length 0
utUtils"
u namespacemozilla:gfx;
#include "nsPresContext.h"
#include "nsString. namespace :image;
#include "nsStyleConsts.h"
#include nsTreeContentView"
#include "nsTreeImageListener.h"
enum CroppingStyle {CropNone,CropLeft,CropRight,CropCenter,CropAuto ;
#include "nsTreeUtils.h"
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
# ACCESSIBILITY
# &aFontMetrics nscoordaWidth,
# include"nsIWritablePropertyBag2.h"
#endif
#include "nsBidiUtils.h"
using namespace mozilla;
using namespace mozilla::domDrawTarget drawTarget =aRenderingContext.()
using namespace mozilla:gfx;
using namespace mozilla::image;
using mozilla:layoutjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
enum CroppingStyle { CropNone, CropLeft, CropRight, .SetTextRunRTL(alse;
// FIXME: Maybe unify with MiddleCroppingBlockFrame?
void CropStringForWidth(sAString&aText &aRenderingContext
CroppingStyle aCropType){
DrawTarget* drawTarget = aRenderingContext.GetDrawTargetjava.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 22
// See if the width is even smaller than the ellipsis
// If so, clear the text completely..ssignkEllipsis)
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0
/ Subtract out the required width of the ellipsis./java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
using:intl:GraphemeClusterBreakIteratorUtf16;
mozilla:intl:GraphemeClusterBreakReverseIteratorUtf16;
if (ellipsisWidth > aWidth) {
aText.Truncate()java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
return;
}
if (ellipsisWidth switch (CropType {
aText.Assign(java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 18
returnjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
}
GraphemeClusterBreakIteratorUtf16 iter(text); pos =0
// Subtract out the required width of the ellipsis.
aWidth - ellipsisWidth;
using mozilla::intl::GraphemeClusterBreakIteratorUtf16;
using mozilla::intl::const nscoord charWidthnsLayoutUtils:ppUnitWidthOfStringjava.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
// Now we crop. This is quite basic: it will not be really accurate in the
// presence of complex scripts with contextual shaping, etc., as it measures
// each grapheme cluster in isolation, not in its proper context.
switch}
case CropAuto:
case CropNone pos =*extPos;
case CropRight:{
const Span text(aText);
java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 7
uint32_t =0;
nscoord totalWidth .eplace(os,aText.ength() pos,kEllipsis)
while (aybe<int32_t>nextPos =iter.ext() {
const nscoord charWidth =nsLayoutUtilsAppUnitWidthOfString(
text.FromTo(os,*) aFontMetrics,drawTargetjava.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
iftotalWidth + >aWidth)java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
break;
}
pos = *nextPos;
totalWidth += java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 29
}
(pos <aText.ength( java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
aText.eplacepos,.( pos )java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
}
} break; if(otalWidth charWidth >aWidth){
case CropLeftbreak;
const =*;
GraphemeClusterBreakReverseIteratorUtf16 itertext;
java.lang.StringIndexOutOfBoundsException: Range [6, 1) out of bounds for length 7
nscoord totalWidth = 0;
}
while (Maybe<uint32_t> nextPos breakjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
constnscoord=nsLayoutUtils:ppUnitWidthOfStringjava.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
text.FromTo(nextPos pos) aFontMetrics,drawTarget)
if ( GraphemeClusterBreakReverseIteratorUtf16 rightIter(ext)
break;
uint32_t rightPos text.ength);
pos=*;
totalWidth += charWidth;
}
if (pos > 0) {
.eplace(,pos,kEllipsis;
}
} break;
case CropCenter: {
const texta)java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
nscoord totalWidth 0;
GraphemeClusterBreakIteratorUtf16 leftIter(text);
GraphemeClusterBreakReverseIteratorUtf16(ext;
uint32_t leftPos = 0;
uint32_t rightPos ;
leftPos nextPos;
Maybe<uint32_t> nextPos = java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 32
=nsLayoutUtils:AppUnitWidthOfString(
text.FromTo(leftPos, *nextPos), aFontMetrics breakjava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
if totalWidth +charWidth>aWidth {
eakjava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
totalWidth+ charWidth;
if (leftPos >= rightPos) {
if (leftPo<rightPos){
}
nextPos = rightIter.Next();}
charWidth = nsLayoutUtils ;
}
break;
}
rightPos nsTreeImageCacheEntry:sTreeImageCacheEntry(mgIRequest*aRequest,
totalWidth + charWidth;
}
if (leftPos < rightPos) {
aText.Replace( ()listenera){
}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [3, 4) out of bounds for length 3
}
nsTreeImageCacheEntry::nsTreeImageCacheEntry/ If our imgIRequest object was registered withtherefreshdriver
nsTreeImageCacheEntry:nsTreeImageCacheEntry(mgIRequest*aRequest,
nsTreeImageListener* java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 32
request(Request) () {
nsTreeImageCacheEntry .-UnlockImage)
void DoCancelImageCacheEntryconst nsTreeImageCacheEntry&aEntry
java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 57
//Ifour object wasr withthe driver
aEntry.listener->ClearFrame();
nsLayoutUtils:DeregisterImageRequest(Pc,aEntryrequest,nullptr)
aEntry.request-> DoCancelImageCacheEntry,pc;
aEntry.request->CancelAndForgetObserver(java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 3
}
// Function that cancels all the image requests in our cache.
//
nsIFrame*NS_NewTreeBodyFrame(resShell*,ComputedStyleaStyle java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
for (onst nsTreeImageCacheEntry&entry :mImageCache.alues) java.lang.StringIndexOutOfBoundsException: Range [67, 68) out of bounds for length 67
(entry )
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
//
// NS_NewTreeFrame
//
// Creates a new tree frame
//
nsIFrame// Constructor
new aPresShell)nsTreeBodyFrame(Style, aPresShell-GetPresContext;
}
NS_IMPL_FRAMEARENA_HELPERS(nsPresCont* aPresContext)
NS_QUERYFRAME_HEAD(nsTreeBodyFrame)
NS_QUERYFRAME_ENTRY( : SimpleXULLeafFrame(aStyle, aPresConte),
S_QUERYFRAME_ENTRYnsTreeBodyFrame
java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 21
// Constructor
nsTreeBodyFrame::nsTreeBodyFrame(mOriginalHorzWidth-)
aPresContext
: SimpleXULLeafFrame (0)
mTopRowIndex0,
mPageLength(0),
mHorzPosition0,
mOriginalHorzWidth(-1),
mMouseOverRow()java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
(0,
mIndentation(mVerticalOverflow)java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
mUpdateBatchNest()
mRowCount(0RefPtrnsTreeColumns(this)
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
mFocused(false),
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
mVerticalOverflow(alse,
mReflowCallbackPosted(false),
mCheckingOverflow(false) {
mColumns = MakeRefPtr< aMargin.SizeTo(0, 0, 0, 0
}
// Destructor
nsTreeBodyFrame
static void GetBorderPadding(ComputedStyle borderPadding(,0 0 )java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
nsTreeBodyFrame::nit(sIContent aContent,nsContainerFrame*aParent,
aStyle->StylePadding()->GetPadding(aMargin);
>GetComputedBorder;
}
static void AdjustForBorderPadding(ComputedStyle* vInFlow;
java.lang.StringIndexOutOfBoundsException: Range [10, 2) out of bounds for length 37
GetBorderPadding(aStyle, borderPadding =GetRowHeight(;
aRect.// Call GetBaseElement
}
void nsTreeBodyFrame:(sIContent*aContent,nsContainerFrame aParent,
*aPrevInFlow java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
SimpleXULLeafFrame::Init(java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 19
mIndentation = GetIndentation();
mHasFi = true;
// Call GetBaseElement so that mTree is assigned.
java.lang.StringIndexOutOfBoundsException: Range [8, 2) out of bounds for length 48
if (mScrollbarActivity =
nsAutoString rows;
ScrollbarActivity(tatic_castnsIScrollbarMediator*>this)java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
nsresulterr;
mPageLength = rows.ToInteger(&err if() {
mHasFixedRowCount truejava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
}
}
mScrollEvent.evoke);
java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
new PresShell(>ancelReflowCallback()java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
}
}
void nsTreeBodyFrame::Destroy(java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 31
if java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
mScrollbarActivity nullptrjava.lang.StringIndexOutOfBoundsException: Range [33, 34) out of bounds for length 33
}
mScrollEvent.Revoke();
if (sel) {
if (mReflowCallbackPostedsel->etTreen);
-SetTreenullptr;
mReflowCallbackPosted = false;
}
if (mColumns){
mColumns->SetTree(nullptr);
}
RefPtr java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
}
sCOMPtrnsITreeSelection ;
view->GetSelection(getter_AddRefs(sel)) mTree-BodyDestroyed(TopRowIndex)
if ( SimpleXUL::estroy();
sel->SetTree(java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 1
}
view->SetTree(nullptr);
}
/ Make this call now because view->SetTree can run js which can undo this
// call.
if (if (PresShell()>sReflowLocked) java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
tree(mTopRowIndex;
}
if (mTree && mTree PresShell(>(this;
;
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
SimpleXULLeafFrame::Destroy(aContext);
}
void nsTreeBodyFrame::EnsureView() i (tree){
if (java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
if(resShell(-IsReflowLocked(){
if (!java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 18
mReflowCallbackPosted =truejava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
// XXX is this ifwe haven'laidout java.lang.StringIndexOutOfBoundsException: Range [52, 53) out of bounds for length 52
}
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 1
}
weakFrame(this)
RefPtrXULTreeElement tree=GetBaseElement(java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
if(tree)java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
return;
}
nsCOMPtr<nsITreeView> treeView = tree ReflowCallbackPosted=true;
if!treeView| weakFrame.sAlive(){
return;
}
int32_trowIndex =tree-GetCachedTopVisibleRow;
// Set our view.
SetView( // FIXME(emilio doesn'seemsound ,if therect changes java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
NS_ENSURE_TRUE_VOID(.()java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
mOriginalHorzWidth -;
// XXX is this optimal if we haven't laid out yet?mLastReflowRect =SomemRect)java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
ScrollToRow(IntrinsicSize nsTreeBody:GetIntrinsicSize( {
NS_ENSURE_TRUE_VOID(weakFrame.IsAliveIntrinsicSizeintrinsicSizejava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
}
voidreturn ;
const nscoord
void nsTreeBodyFrame:DidReflow(nsPresContext* PresContext
->IsEqualEdgesmRect)|
mHorzWidth != horzWidth) {
PresShell()->PostReflowCallback(this);
mReflowCallbackPosted = true;
mOriginalHorzWidth = mHorzWidth;
}
} else if (mHorzWidth != horzWidth && mOriginalHorzWidth == horzWidth) {
//FIXME(milio: This doesn'tseem o me the rect changes
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
AutoWeakFrame weakFramethis;
mReflowCallbackPosted = false;
EnsureView(;
}
(mRect;
mHorzWidth = horzWidth;
}
IntrinsicSize nsTreeBodyFrame:: ( java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
;
if (mHasFixedRowCount mRectwidth;
(GetWritingMode()emplacemRowHeight*mPageLength;
}
return=
}
void (mRowHeight>0 ?mInnerBox.eight/mRowHeight):java.lang.StringIndexOutOfBoundsException: Range [73, 72) out of bounds for length 73
ReflowInput*aReflowInput){
ManageReflowCallback();
mTopRowIndex >) java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
}
::eflowFinished( java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
if (!mView) {
AutoWeakFrame weakFrame(this) if( & treeContent-AttrValueIsjava.lang.StringIndexOutOfBoundsException: Range [48, 49) out of bounds for length 48
EnsureView(;
NS_ENSURE_TRUE( =1 {
EnsureRowIsVisibleInternal(arts )
if ( }
CalcInnerBox();
ScrollParts parts = java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
mHorzWidth=mRect.;
if (!returnfalse;
java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0
(returnfalse;
}
int32_t astPageTopRow = std:max(,mRowCount -mPageLength)
if mReflowCallbackPosted=false
nsresult:GetViewnsITreeView* aView){
java.lang.StringIndexOutOfBoundsException: Range [5, 6) out of bounds for length 5
=GetBaseElement(;
if (treeContent && treeContent->AttrValueIs(
kNameSpaceID_None,nsGkAtoms:keepcurrentinview,
nsGkAtoms::_true, eCaseMatters)) {
// make sure that the current selected item is still
if (nsCOMPtr<java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 23
int32_t java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 3
sel-> nsCOMPtr<nsITreeView =std:(mViewjava.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
if(urrentIndex !-)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
EnsureRowIsVisibleInternal(arts,currentIndex;
}
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
}
if (!FullScrollbarsUpdate(false java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
;
}
}
mReflowCallbackPosted = false;
return/ non- .
}
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
mReflowCallbackPosted = =aView;
}
nsresult nsTreeBodyFrame::java.lang.StringIndexOutOfBoundsException: Range [56, 43) out of bounds for length 56
*aView = java.lang.StringIndexOutOfBoundsException: Range [0, 18) out of bounds for length 0
AutoWeakFrame weakFrame(this);
EnsureView();
NS_ENSURE_STATEweakFrame.sAlive()
NS_IF_ADDREF(*#ACCESSIBILITY
returnN;
}
accService-TreeViewChanged((-GetPresShell) treeContent,
aView =mView){
return NS_OK;
}
// First clear out the old view.
nsCOMPtr<endif
if (oldView) {
AutoWeakFrame weakFramethis)java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
/ Give the view a new empty selection object to play with, but only if it
>((sel)java.lang.StringIndexOutOfBoundsException: Range [47, 48) out of bounds for length 47
if (el {
sel->SetTree ->etSelection(etter_AddRefs(el)java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
}
oldView>()java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
aView->SetSelection(sel);
// Only reset the top row index and delete the columns if we had an oldjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
mTopRowIndex = 0;
}
/ Tree, meet the view.
mView = View;
// Changing the view causes us to refetch our data. This will
/necessarily invalidation the .
Invalidate();
/ The scrollbar will need to be updated.
(false;
#ifdef ACCESSIBILITY
if(sAccessibilityService*accService=GetAccService(){
accService->mReflowCallbackPosted;
mView);
}
#endif // #ifdef ACCESSIBILITY
FireDOMEvent}
}
if (aViewreturn S_OKjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
java.lang.StringIndexOutOfBoundsException: Range [32, 4) out of bounds for length 78
// doesn't have one already.
nsCOMPtr<nsITreeSelection> sel;
<> sel;
(sCOMPtr<sITreeView view =GetExistingView()java.lang.StringIndexOutOfBoundsException: Range [55, 56) out of bounds for length 55
(treeContent
} else {
nsresult :SetFocusedbool aFocused){
aView-SetSelectionsel;
}
// View, meet the tree.
AutoWeakFrame weakFrame( if (sCOMPtr<sITreeSelection sel =GetSelection)){
aView->SetTree(treeContent) sel-InvalidateSelection(;
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 3
if()) {
// The scrollbar will need to be updated.
FullScrollbarsUpdatefalse;
(mContent) java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 3
)->(this;
}
}
;
}
eturnNS_OK
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
nsCOMPtrnsITreeView> GetExistingView)) java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
return:AppUnitsToIntCSSPixels();
}
return sel.forget();
}
java.lang.StringIndexOutOfBoundsException: Range [24, 8) out of bounds for length 53
ifreturn nsPresContext:AppUnitsToIntCSSPixelsmRect);
mFocused = aFocused;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
sel-InvalidateSelection)
} (!View){
} Nothing(java.lang.StringIndexOutOfBoundsException: Range [21, 22) out of bounds for length 21
return ;
}
nsresult::etTreeBody(lement* ){
// NS_ASSERTION(mContent, "no content, see bug #104878");
if ( (;
return NS_ERROR_NULL_POINTERnsIntRect rect=.ToOutsidePixels(ppUnitsPerCSSPixel()
}
RefPtr<Element> elementnsPoint origin=GetOffsetTor);
element.forget(aElementCSSIntRegion ;
java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
}
y =:AppUnitsToIntCSSPixels.)
returnnsPresContext:(mRowHeight;
}
rowHeight =:AppUnitsToIntCSSPixels();
return nsPresContext:AppUnitsToIntCSSPixels(Rect.idth)
}
MaybeC> nsTreeBodyFrame:GetSelectionRegion
if (! region((,y rect.idth,rowHeight);
return Nothing();
}
AutoWeakFramewft);
nsCOMPtr<sITreeSelection>selection GetSelection)
if (!//clip to thet boundary extends it
region.ndWith(SSIntRect(,top, rect.,rect)java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
}
nsIntRect nsIntRect rect::nvalidate(
= PresShell(-GetRootFrame(;
nsPoint origin = GetOffsetTo(rootFrame);
CSSIntRegion region;
// iterate through the visible rows and add the selected ones to the
// drag region
int32_tx=nsPresContext:AppUnitsToIntCSSPixels(rigin)java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
int32_ty nsPresContext:(origin.)
mUpdateBatchNest){
int32_t =LastVisibleRow(;
int32_t rowHeight = nsPresContext::java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 3
for NS_ERROR_INVALID_ARG
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 0
GetAccService) java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
if (isSelected) {
region.java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
y + owHeight;
}
// clip to the tree boundary in case one row extends past it
region. // When false is out view
return Some(region);
}
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 3
return java.lang.StringIndexOutOfBoundsException: Range [15, 16) out of bounds for length 15
nsresultnsTreeBodyFrame:( aIndex)java.lang.StringIndexOutOfBoundsException: Range [57, 58) out of bounds for length 57
return NS_OKjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
InvalidateFrame();
return NS_OK;
} FireInvalidateEventaIndex,aIndex,nullptr,nullptr);
nsresult nsTreeBodyFrame::java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 3
if (mUpdateBatchNest aIndex 0 ||aIndex >mPageLength)
return NS_OKjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
}
if (!aCol) { mInnerBox.idth,mRowHeight)
return NS_ERROR_INVALID_ARG;
}returnNS_OK
#ifdef ACCESSIBILITY
if (nsresult nsTreeBodyFrameInvalidateCell(nt32_t aIndex,nsTreeColumn java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
FireInvalidateEvent
}
# // #ifdef ACCESSIBILITY
nsRectcolumnRect
FireInvalidateEvent(,aIndex,aCol aCol
}
// When false then column is out of view
if ( aIndex -= mTopRowIndex;
if (aIndex < 0 || aIndex){
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
return;
}
nsresult nsTreeBodyFramejava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 3
if (mUpdateBatchNest nsresultrv=aCol-GetRect(his, mInnerBox. +mRowHeight *,
returnNS_OK;
}
ifdefACCESSIBILITY
if (GetAccService())if (ffsetForHorzScroll(ellRect,true) {
FireInvalidateEvent(aIndex, aIndex, nullptr, nullptr nvalidateFrameWithRect(ellRect)
}
# // #ifdef ACCESSIBILITY
nsresult nsTreeBodyFrame:InvalidateRange(nt32_t Start,int32_t ){
(Index <0| >mPageLengthjava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0
}
nsRectrowRect(InnerBox. mInnerBoxy +mRowHeight*aIndexjava.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
.,mRowHeight;
InvalidateFrameWithRect(rowRect);
return;
}
nsresult ;
if (mUpdateBatchNest) {
return NS_OK;
}
#ifdef ACCESSIBILITY
if (GetAccService()) {
FireInvalidateEvent(aIndex, aIndex, aCol, aCol);
}
#endif // #ifdef ACCESSIBILITY
aIndex -= mTopRowIndex;
if (aIndex < 0 || aIndex > mPageLength) {
return NS_OK;
}
if (!aCol) {
return NS_ERROR_INVALID_ARG;
}
nsRect cellRect;
nsresult rv = aCol->GetRect(this, mInnerBox.y + mRowHeight * aIndex,
mRowHeight, &cellRect);
NS_ENSURE_SUCCESS(rv, rv);
if (OffsetForHorzScroll(cellRect, true)) {
InvalidateFrameWithRect(cellRect);
}
return NS_OK;
}
nsresult nsTreeBodyFrame::InvalidateRange(int32_t aStart, int32_t aEnd) {
if (mUpdateBatchNest) {
return NS_OK;
}
if (aStart == aEnd) {
return InvalidateRow(aStart);
}
int32_t last = LastVisibleRow();
if (aStart > aEnd || aEnd < mTopRowIndex || aStart > last) {
return NS_OK;
}
if (aStart < mTopRowIndex) {
aStart = mTopRowIndex;
}
if (aEnd > last) {
aEnd = last;
}
#ifdef ACCESSIBILITY
if (GetAccService()) {
int32_t end =
mRowCount > 0 ? ((mRowCount <= aEnd) ? mRowCount - 1 : aEnd) : 0;
FireInvalidateEvent(aStart, end, nullptr, nullptr);
}
#endif // #ifdef ACCESSIBILITY
nsRect rangeRect(mInnerBox.x,
mInnerBox.y + mRowHeight * (aStart - mTopRowIndex),
mInnerBox.width, mRowHeight * (aEnd - aStart + 1));
InvalidateFrameWithRect(rangeRect);
return NS_OK;
}
static void FindScrollParts(nsIFrame* aCurrFrame,
nsTreeBodyFrame::ScrollParts* aResult) {
if (nsScrollbarFrame* sf = do_QueryFrame(aCurrFrame)) {
if (!sf->IsHorizontal() && !aResult->mVScrollbar) {
aResult->mVScrollbar = sf;
}
// don't bother searching inside a scrollbar
return;
}
nsIFrame* child = aCurrFrame->PrincipalChildList().FirstChild();
while (child && !child->GetContent()->IsRootOfNativeAnonymousSubtree() &&
!aResult->mVScrollbar) {
FindScrollParts(child, aResult);
child = child->GetNextSibling();
}
}
nsTreeBodyFrame::ScrollParts nsTreeBodyFrame::GetScrollParts() {
ScrollParts result;
XULTreeElement* tree = GetBaseElement();
if (nsIFrame* treeFrame = tree ? tree->GetPrimaryFrame() : nullptr) {
// The way we do this, searching through the entire frame subtree, is pretty
// dumb! We should know where these frames are.
FindScrollParts(treeFrame, &result);
if (result.mVScrollbar) {
result.mVScrollbar->SetOverrideScrollbarMediator(this);
result.mVScrollbarContent = result.mVScrollbar->GetContent()->AsElement();
}
}
return result;
}
void nsTreeBodyFrame::UpdateScrollbars(const ScrollParts& aParts) {
if (!aParts.mVScrollbar) {
return;
}
CSSIntCoord rowHeightAsPixels =
nsPresContext::AppUnitsToIntCSSPixels(mRowHeight);
CSSIntCoord pos = mTopRowIndex * rowHeightAsPixels;
if (!aParts.mVScrollbar->SetCurPos(pos)) {
return;
}
if (mScrollbarActivity) {
mScrollbarActivity->ActivityOccurred();
}
}
void nsTreeBodyFrame::CheckOverflow(const ScrollParts& aParts) {
bool verticalOverflowChanged = false;
if (!mVerticalOverflow && mRowCount > mPageLength) {
mVerticalOverflow = true;
verticalOverflowChanged = true;
} else if (mVerticalOverflow && mRowCount <= mPageLength) {
mVerticalOverflow = false;
verticalOverflowChanged = true;
}
if (!verticalOverflowChanged) {
return;
}
AutoWeakFrame weakFrame(this);
RefPtr<nsPresContext> presContext = PresContext();
RefPtr<mozilla::PresShell> presShell = presContext->GetPresShell();
nsCOMPtr<nsIContent> content = mContent;
InternalScrollPortEvent event(
true, mVerticalOverflow ? eScrollPortOverflow : eScrollPortUnderflow,
nullptr);
event.mOrient = InternalScrollPortEvent::eVertical;
EventDispatcher::Dispatch(content, presContext, &event);
// The synchronous event dispatch above can trigger reflow notifications.
// Flush those explicitly now, so that we can guard against potential infinite
// recursion. See bug 905909.
if (!weakFrame.IsAlive()) {
return;
}
NS_ASSERTION(!mCheckingOverflow,
"mCheckingOverflow should not already be set");
// Don't use AutoRestore since we want to not touch mCheckingOverflow if we
// fail the weakFrame.IsAlive() check below
mCheckingOverflow = true;
presShell->FlushPendingNotifications(FlushType::Layout);
if (!weakFrame.IsAlive()) {
return;
}
mCheckingOverflow = false;
}
void nsTreeBodyFrame::InvalidateScrollbars(const ScrollParts& aParts) {
if (mUpdateBatchNest || !mView || !aParts.mVScrollbar) {
return;
}
nscoord rowHeightAsPixels = nsPresContext::AppUnitsToIntCSSPixels(mRowHeight);
CSSIntCoord size = rowHeightAsPixels *
(mRowCount > mPageLength ? mRowCount - mPageLength : 0);
CSSIntCoord pageincrement = mPageLength * rowHeightAsPixels;
bool changed = false;
changed |= aParts.mVScrollbar->SetMaxPos(size);
changed |= aParts.mVScrollbar->SetPageIncrement(pageincrement);
if (changed && mScrollbarActivity) {
mScrollbarActivity->ActivityOccurred();
}
}
// Takes client x/y in pixels, converts them to appunits, and converts into
// values relative to this nsTreeBodyFrame frame.
nsPoint nsTreeBodyFrame::AdjustClientCoordsToBoxCoordSpace(int32_t aX,
int32_t aY) {
nsPoint point(nsPresContext::CSSPixelsToAppUnits(aX),
nsPresContext::CSSPixelsToAppUnits(aY));
nsPresContext* presContext = PresContext();
point -= GetOffsetTo(presContext->GetPresShell()->GetRootFrame());
// Adjust by the inner box coords, so that we're in the inner box's
// coordinate space.
point -= mInnerBox.TopLeft();
return point;
} // AdjustClientCoordsToBoxCoordSpace
int32_t nsTreeBodyFrame::GetRowAt(int32_t aX, int32_t aY) {
if (!mView) {
return 0;
}
nsPoint point = AdjustClientCoordsToBoxCoordSpace(aX, aY);
// Check if the coordinates are above our visible space.
if (point.y < 0) {
return -1;
}
return GetRowAtInternal(point.x, point.y);
}
nsresult nsTreeBodyFrame::GetCellAt(int32_t aX, int32_t aY, int32_t* aRow,
nsTreeColumn** aCol,
nsACString& aChildElt) {
if (!mView) {
return NS_OK;
}
nsPoint point = AdjustClientCoordsToBoxCoordSpace(aX, aY);
// Check if the coordinates are above our visible space.
if (point.y < 0) {
*aRow = -1;
return NS_OK;
}
nsTreeColumn* col;
PseudoStyleType child;
GetCellAt(point.x, point.y, aRow, &col, &child);
if (col) {
NS_ADDREF(*aCol = col);
if (child == PseudoStyleType::MozTreeCell) {
aChildElt.AssignLiteral("cell");
} else if (child == PseudoStyleType::MozTreeTwisty) {
aChildElt.AssignLiteral("twisty");
} else if (child == PseudoStyleType::MozTreeImage) {
aChildElt.AssignLiteral("image");
} else if (child == PseudoStyleType::MozTreeCellText) {
aChildElt.AssignLiteral("text");
}
}
return NS_OK;
}
//
// GetCoordsForCellItem
//
// Find the x/y location and width/height (all in PIXELS) of the given object
// in the given column.
//
// XXX IMPORTANT XXX:
// Hyatt says in the bug for this, that the following needs to be done:
// (1) You need to deal with overflow when computing cell rects. See other
// column iteration examples... if you don't deal with this, you'll mistakenly
// extend the cell into the scrollbar's rect.
//
// (2) You are adjusting the cell rect by the *row" border padding. That's
// wrong. You need to first adjust a row rect by its border/padding, and then
// the cell rect fits inside the adjusted row rect. It also can have
// border/padding as well as margins. The vertical direction isn't that
// important, but you need to get the horizontal direction right.
//
// (3) GetImageSize() does not include margins (but it does include
// border/padding). You need to make sure to add in the image's margins as well.
//
nsresult nsTreeBodyFrame::GetCoordsForCellItem(int32_t aRow, nsTreeColumn* aCol,
const nsACString& aElement,
int32_t* aX, int32_t* aY,
int32_t* aWidth,
int32_t* aHeight) {
*aX = 0;
*aY = 0;
*aWidth = 0;
*aHeight = 0;
bool isRTL = StyleVisibility()->mDirection == StyleDirection::Rtl;
nscoord currX = mInnerBox.x - mHorzPosition;
// The Rect for the requested item.
nsRect theRect;
nsPresContext* presContext = PresContext();
nsCOMPtr<nsITreeView> view = GetExistingView();
for (nsTreeColumn* currCol = mColumns->GetFirstColumn(); currCol;
currCol = currCol->GetNext()) {
// The Rect for the current cell.
nscoord colWidth;
#ifdef DEBUG
nsresult rv =
#endif
currCol->GetWidthInTwips(this, &colWidth);
NS_ASSERTION(NS_SUCCEEDED(rv), "invalid column");
nsRect cellRect(currX, mInnerBox.y + mRowHeight * (aRow - mTopRowIndex),
colWidth, mRowHeight);
// Check the ID of the current column to see if it matches. If it doesn't
// increment the current X value and continue to the next column.
if (currCol != aCol) {
currX += cellRect.width;
continue;
}
// Now obtain the properties for our cell.
PrefillPropertyArray(aRow, currCol);
nsAutoString properties;
view->GetCellProperties(aRow, currCol, properties);
nsTreeUtils::TokenizeProperties(properties, mScratchArray);
ComputedStyle* rowContext =
GetPseudoComputedStyle(PseudoStyleType::MozTreeRow);
// We don't want to consider any of the decorations that may be present
// on the current row, so we have to deflate the rect by the border and
// padding and offset its left and top coordinates appropriately.
AdjustForBorderPadding(rowContext, cellRect);
ComputedStyle* cellContext =
GetPseudoComputedStyle(PseudoStyleType::MozTreeCell);
constexpr auto cell = "cell"_ns;
if (currCol->IsCycler() || cell.Equals(aElement)) {
// If the current Column is a Cycler, then the Rect is just the cell - the
// margins. Similarly, if we're just being asked for the cell rect,
// provide it.
theRect = cellRect;
nsMargin cellMargin;
cellContext->StyleMargin()->GetMargin(cellMargin);
theRect.Deflate(cellMargin);
break;
}
// Since we're not looking for the cell, and since the cell isn't a cycler,
// we're looking for some subcomponent, and now we need to subtract the
// borders and padding of the cell from cellRect so this does not
// interfere with our computations.
AdjustForBorderPadding(cellContext, cellRect);
UniquePtr<gfxContext> rc =
presContext->PresShell()->CreateReferenceRenderingContext();
// Now we'll start making our way across the cell, starting at the edge of
// the cell and proceeding until we hit the right edge. |cellX| is the
// working X value that we will increment as we crawl from left to right.
nscoord cellX = cellRect.x;
nscoord remainWidth = cellRect.width;
if (currCol->IsPrimary()) {
// If the current Column is a Primary, then we need to take into account
// the indentation and possibly a twisty.
// The amount of indentation is the indentation width (|mIndentation|) by
// the level.
int32_t level;
view->GetLevel(aRow, &level);
if (!isRTL) {
cellX += mIndentation * level;
}
remainWidth -= mIndentation * level;
// Find the twisty rect by computing its size.
nsRect imageRect;
nsRect twistyRect(cellRect);
ComputedStyle* twistyContext =
GetPseudoComputedStyle(PseudoStyleType::MozTreeTwisty);
GetTwistyRect(aRow, currCol, imageRect, twistyRect, presContext,
twistyContext);
if ("twisty"_ns.Equals(aElement)) {
// If we're looking for the twisty Rect, just return the size
theRect = twistyRect;
break;
}
// Now we need to add in the margins of the twisty element, so that we
// can find the offset of the next element in the cell.
nsMargin twistyMargin;
twistyContext->StyleMargin()->GetMargin(twistyMargin);
twistyRect.Inflate(twistyMargin);
// Adjust our working X value with the twisty width (image size, margins,
// borders, padding.
if (!isRTL) {
cellX += twistyRect.width;
}
}
// Cell Image
ComputedStyle* imageContext =
GetPseudoComputedStyle(PseudoStyleType::MozTreeImage);
nsRect imageSize = GetImageSize(aRow, currCol, false, imageContext);
if ("image"_ns.Equals(aElement)) {
theRect = imageSize;
theRect.x = cellX;
theRect.y = cellRect.y;
break;
}
// Add in the margins of the cell image.
nsMargin imageMargin;
imageContext->StyleMargin()->GetMargin(imageMargin);
imageSize.Inflate(imageMargin);
// Increment cellX by the image width
if (!isRTL) {
cellX += imageSize.width;
}
// Cell Text
nsAutoString cellText;
view->GetCellText(aRow, currCol, cellText);
// We're going to measure this text so we need to ensure bidi is enabled if
// necessary
CheckTextForBidi(cellText);
// Create a scratch rect to represent the text rectangle, with the current
// X and Y coords, and a guess at the width and height. The width is the
// remaining width we have left to traverse in the cell, which will be the
// widest possible value for the text rect, and the row height.
nsRect textRect(cellX, cellRect.y, remainWidth, cellRect.height);
// Measure the width of the text. If the width of the text is greater than
// the remaining width available, then we just assume that the text has
// been cropped and use the remaining rect as the text Rect. Otherwise,
// we add in borders and padding to the text dimension and give that back.
ComputedStyle* textContext =
GetPseudoComputedStyle(PseudoStyleType::MozTreeCellText);
RefPtr<nsFontMetrics> fm =
nsLayoutUtils::GetFontMetricsForComputedStyle(textContext, presContext);
nscoord height = fm->MaxHeight();
nsMargin textMargin;
textContext->StyleMargin()->GetMargin(textMargin);
textRect.Deflate(textMargin);
// Center the text. XXX Obey vertical-align style prop?
if (height < textRect.height) {
textRect.y += (textRect.height - height) / 2;
textRect.height = height;
}
nsMargin bp(0, 0, 0, 0);
GetBorderPadding(textContext, bp);
textRect.height += bp.top + bp.bottom;
AdjustForCellText(cellText, aRow, currCol, *rc, *fm, textRect);
theRect = textRect;
}
if (isRTL) {
theRect.x = mInnerBox.width - theRect.x - theRect.width;
}
*aX = nsPresContext::AppUnitsToIntCSSPixels(theRect.x);
*aY = nsPresContext::AppUnitsToIntCSSPixels(theRect.y);
*aWidth = nsPresContext::AppUnitsToIntCSSPixels(theRect.width);
*aHeight = nsPresContext::AppUnitsToIntCSSPixels(theRect.height);
return NS_OK;
}
int32_t nsTreeBodyFrame::GetRowAtInternal(nscoord aX, nscoord aY) {
if (mRowHeight <= 0) {
return -1;
}
// Now just mod by our total inner box height and add to our top row index.
int32_t row = (aY / mRowHeight) + mTopRowIndex;
// Check if the coordinates are below our visible space (or within our visible
// space but below any row).
if (row > mTopRowIndex + mPageLength || row >= mRowCount) {
return -1;
}
return row;
}
void nsTreeBodyFrame::CheckTextForBidi(nsAutoString& aText) {
// We could check to see whether the prescontext already has bidi enabled,
// but usually it won't, so it's probably faster to avoid the call to
// GetPresContext() when it's not needed.
if (HasRTLChars(aText)) {
PresContext()->SetBidiEnabled();
}
}
void nsTreeBodyFrame::AdjustForCellText(nsAutoString& aText, int32_t aRowIndex,
nsTreeColumn* aColumn,
gfxContext& aRenderingContext,
nsFontMetrics& aFontMetrics,
nsRect& aTextRect) {
MOZ_ASSERT(aColumn && aColumn->GetFrame(), "invalid column passed");
DrawTarget* drawTarget = aRenderingContext.GetDrawTarget();
nscoord maxWidth = aTextRect.width;
bool widthIsGreater = nsLayoutUtils::StringWidthIsGreaterThan(
aText, aFontMetrics, drawTarget, maxWidth);
nsCOMPtr<nsITreeView> view = GetExistingView();
if (aColumn->Overflow()) {
DebugOnly<nsresult> rv;
nsTreeColumn* nextColumn = aColumn->GetNext();
while (nextColumn && widthIsGreater) {
while (nextColumn) {
nscoord width;
rv = nextColumn->GetWidthInTwips(this, &width);
NS_ASSERTION(NS_SUCCEEDED(rv), "nextColumn is invalid");
if (width != 0) {
break;
}
nextColumn = nextColumn->GetNext();
}
if (nextColumn) {
nsAutoString nextText;
view->GetCellText(aRowIndex, nextColumn, nextText);
// We don't measure or draw this text so no need to check it for
// bidi-ness
if (nextText.Length() == 0) {
nscoord width;
rv = nextColumn->GetWidthInTwips(this, &width);
NS_ASSERTION(NS_SUCCEEDED(rv), "nextColumn is invalid");
maxWidth += width;
widthIsGreater = nsLayoutUtils::StringWidthIsGreaterThan(
aText, aFontMetrics, drawTarget, maxWidth);
nextColumn = nextColumn->GetNext();
} else {
nextColumn = nullptr;
}
}
}
}
CroppingStyle cropType = CroppingStyle::CropRight;
if ( (aStart<mTopRowIndex)java.lang.StringIndexOutOfBoundsException: Range [30, 31) out of bounds for length 30
= CroppingStyle:;
} else if (aColumn->GetCropStyle() == 2) {
cropType = CroppingStyle::CropLeft;
}
CropStringForWidth(aText, aRenderingContext, aFontMetrics, maxWidth,
cropType);
nscoord width = nsLayoutUtils::AppUnitWidthOfStringBidi(
aText, this, aFontMetrics, aRenderingContext);
switch (aColumn->GetTextAlignment()) {
case >0 ? mRowCount < aEnd)?mRowCount - ):;
aTextRect.x += aTextRect.width - width;
breakjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
case .y +mRowHeight *(Start -mTopRowIndex,
aTextRect. +width)/2;
break;
defaultInvalidateFrameWithRect(angeRect;
reak
}
nsTreeBodyFrame:ScrollParts*aResult){
}
PseudoStyleType nsTreeBodyFrame::GetItemWithinCellAt(nscoord aX,
nsRectaCellRect
int32_taRowIndex
nsTreeColumn*}
MOZ_ASSERT
/ Obtain the properties for our cell.
(aRowIndex,aColumn)
!aResult>VScrollbar java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ScrollPartsresultjava.lang.StringIndexOutOfBoundsException: Range [21, 22) out of bounds for length 21
TreeUtils:TokenizeProperties(roperties mScratchArray)
// Resolve style for the cell.
ComputedStyle(,&esult;
GetPseudoComputedStyle(PseudoStyleType::MozTreeCell);
result.mVScrollbar->SetOverrideScrollbarMediator(this);
/java.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75
nsRect cellRect(return resultjava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
nsMargin cellMargin;
cellContext->StyleMargin()-> !aParts.VScrollbar java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
cellRect.eflate(ellMargin)
// Adjust the rect for its border and padding.
AdjustForBorderPadding(ellContext,cellRect)
if ( java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
/java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
}
returnPseudoStyleType:MozTreeCell;
}
nscoord currX = cellRect.;
remainingWidth =cellRectwidthjava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
// Handle right alignment hit testing.
bool =StyleVisibility)- = StyleDirection:Rtl;
=;
=
presContext-java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if (aColumn->IsPrimary()) {}
/java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
int32_t level;
view-GetLevel(RowIndex &evel;
if (!isRTLRefPtr<ozilla:PresShell>presShell=presContext-GetPresShell(;
currX+ mIndentation leveljava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
}
remainingWidth -= mIndentation * level;
if (isRTL & X >currX +remainingWidth | !isRTL & aX <currX){
// The user clicked within the indentation.
return PseudoStyleType::MozTreeCell;
}
// Always leave space for the twisty. guard potential
nsRect twistyRect(currX, cellRect.y, remainingWidth, cellRect.height);
bool hasTwisty = false;
bool isContainer = false;
view->IsContainer(java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
if ( NS_ASSERTION,
bool isContainerEmpty = false;
view->IsContainerEmpty(aRowIndex, Don't use AutoRestore since we want to not touch mCheckingOverflow if we
if (!isContainerEmpty =true;
hasTwisty=true;
}
}
/Resolve style forthetwisty.
twistyContext =
java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 0
nsRect imageSize;
(,aColumn,imageSize twistyRect,presContext,
;
// We will treat a click as hitting the twisty if it happens on the margins,rowHeightAsPixels =nsPresContext:AppUnitsToIntCSSPixels()java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
"slop"
// into the margin, we make it a little bit easier for a user to hit the
picky here)
nsMargin twistyMargin;
twistyContext->tyleMargin(-GetMargin(twistyMargin;
twistyRect.nflate(wistyMargin)
if (sRTL){
twistyRect.x = currX + remainingWidth if changed & mScrollbarActivity){
}
// Now we test to see if aX is actually within the twistyRect. If it is,
// and if the item should have a twisty, then we return "twisty". If it is
// within the rect but we shouldn't have a twisty, then we return "cell".
if(X > twistyRect. & aX <twistyRect. +.width){
if (hasTwisty) {
}
return PseudoStyleType::nsPresContext* presContext = PresContextGetOffsetTopresContext-GetPresShell)>etRootFrame);
}
if (!isRTL) {
urrX + twistyRect.idth;
}
remainingWidth -= twistyRect.width;
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
// Now test to see if the user hit the icon for the cell.
.y,remainingWidth,cellRecth)java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
// Resolve style for the image.
}
GetPseudoComputedStyle(PseudoStyleType::MozTreeImage);
nsRect java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 1
nsMarginimageMargin;
imageContext>tyleMargin(-GetMargin(mageMargin;
iconSize.Inflate(imageMargin);
iconRect.width = iconSize.width;
(sRTL java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
}
/java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
// The user clicked on the image.
return PseudoStyleType NS_OK
}
if(isRTL)java.lang.StringIndexOutOfBoundsException: Range [15, 16) out of bounds for length 15
currX += java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 12
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
remainingWidth -= iconRect.width; if =PseudoStyleType:ozTreeTwisty java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
cellText;
view->GetCellText(aRowIndex, aChildElt.AssignLiteral(""java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
// We're going to measure this text so we need to ensure bidi is enabled if
// necessary
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
//
// Find the x/y location and width/height (all// in the given column.
// Hyatt says in the bug for this, that the// (1) You need to deal with overflow when computing cell rects. See other
nsMargin textMargin;
// (2) You are adjusting the cell rect // wrong. You need to first adjust a row rectrect. It also can have
textRect.Deflate(textMargin);
AdjustForBorderPadding(textContext, textRect// border/padding). You need to make sure to add in the image's margins as well.
RefPtr<sFontMetrics> java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
nsLayoutUtils::GetFontMetricsForComputedStyle(textContext, presContext);
AdjustForCellText(cellText, aRowIndex, aColumn, *rc, *fm, textRect);
int32_t*aHeight) {
return PseudoStyleTypeaY=0java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
return PseudoStyleType::MozTreeCell;
}
void nsTreeBodyFrame
** aCol,
PseudoStyleType aChildElt){
*Col=nullptrjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
* =PseudoStyleType:NotPseudo;
*aRow GetRowAtInternal(X,aY;
if (aRow<0){
return;
#ifdef DEBUG
for (nsTreeColumn*n rv =
currCol>etWidthInTwips(,&olWidth)
nsRect cellRect;
nsresult rv =currCol-GetRect(
this, mInnerBox.y +mRowHeight *(aRow -mTopRowIndex) RowHeight
& // Check ID of the currentcolumn to see ifit matchesIf itdoesnt
if (NS_FAILED(rv)) {
MOZ_ASSERT_UNREACHABLE("column MOZ_ASSERT_UNREACHABLE("column
continue;
}
if (!OffsetForHorzScroll( (,currCol;
continue;
}
(aX >cellRect. & aX<.x +.width){
// We know the column hit now.
=currCol;
->(){
// Cyclers contain only images. Fill this in immediately and return.
*
/java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
*java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
break
}
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
}
/ If the current Column is a Cycler, then the Rect is just the cell - the
gfxContext* aRenderingContext,
&aDesiredSize,
nscoord& aCurrentSize) {
MOZ_ASSERT(aCol, .eflate(ellMargin)
MOZ_ASSERT(java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 5
// The rect for the current cell.
/borders and padding of the does not
nsresult rv = aCol->AdjustForBorderPadding(cellContext, cellRect);
NS_ENSURE_SUCCESS(rv, rv);
nsRect cellRectx presContext-PresShell(-CreateReferenceRenderingContext
int32_t overflow =
cellRect.x + cellRect.width / working X value that we will increment as we crawl from left to right.
if (overflow > 0) {
cellRect.java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
/java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
ComputedStylecellContext =
GetPseudoComputedStyle(PseudoStyleType::MozTreeCell);
bp0 0 ,0;
GetBorderPaddingview->etLevel(Row l)java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
aCurrentSize = cellRect.widthremainWidth- mIndentation ;
;
if (aCol->IsPrimary()) {
// If the current Column is a Primary, then we need to take into accountGetPseudoComputedStylePseudoStyleType:MozTreeTwisty)
is the indentation width (|mIndentation|) by
// the level.
int32_tl;
view
theRect twistyRect;
// Find the twisty rect by computing its size.
ComputedStyle
GetPseudoComputedStyle// can find the offset of the next element in the cell.
nsRect imageSize;
llRect)
GetTwistyRect(aRow, aCol, / Adjust our working X value with the twisty width (image size, margins,
twistyContext);
// Add in the margins of the twisty element.
nsMargin java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 5
->tyleMargin(-GetMargin(wistyMargin)java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
twistyRect.nflate(wistyMargin)
aDesiredSize+ twistyRect.width;
}
ComputedStyle* imageContext =
GetPseudoComputedStyle(PseudoStyleType::MozTreeImage);
//Account for hewidthof the cellimage
nsRect imageSizejava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
// Add in the margins of the cell image.
nsMargin imageMargin;
imageContext-StyleMargin()>GetMargin(imageMargin)
imageSize. nsMargin imageMjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
aDesiredSize += imageSize.width
// Get the cell text.if (isRTL){
nsAutoString cellText;
view-GetCellTextaRow,aCol,cellText)
/java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
/necessary
(ellText)
ComputedStyle* textContext CheckTextForBidi()java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
GetPseudoComputedStyle(// X and Y coords, and a guess at the width. width is the
// Get the borders and padding for the text.
GetBorderPadding(textContext, bp);
RefPtrnsFontMetrics =
// Measure . If the greater
// Get the width of the text itself
// cropped and use the remaining theRect Otherwisejava.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75
nscoord totalTextWidth<sFontMetrics> =
aDesiredSize += totalTextWidth;
NS_OK
}
java.lang.StringIndexOutOfBoundsException: Range [24, 8) out of bounds for length 73
retval {
nscoord java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 0
sresultrv;
if (!aCol) . ;
return java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
}
java.lang.StringIndexOutOfBoundsException: Range [11, 2) out of bounds for length 76
rv = GetCellWidth(aRow,aCol .et) desiredSize,);
NS_ENSURE_SUCCESS(rv, rv);
*_retval = desiredSize
if (sRTL){
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
nsTreeBodyFrame:CreateTimer(onst LookAndFeel:IntID ID
aFunc, int32_t aType,
nsITimer*,
const nsACString& aName) {
// Get the delay from the look and feel service.
int32_t java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 1
nsCOMPtr<sITimer>timer;
// Create a new timer only if the delay is greater than zero.
// Zero value means that this feature is completely disabled.
if (delay 0)java.lang.StringIndexOutOfBoundsException: Range [18, 19) out of bounds for length 18
timer = MOZ_TRY(NS_NewTimerWithFuncCallback(
aFunc, if (row >mTopRowIndex | row =mRowCount){
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
timer. nsTreeBodyFrame:CheckTextForBidi(sAutoString&aText) java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
returnNS_OK;
}
nsresult nsTreeBodyFrame:RowCountChanged(nt32_t aIndex,int32_t aCount {
ifHasRTLCharsaText) java.lang.StringIndexOutOfBoundsException: Range [27, 28) out of bounds for length 27
return NS_OK; // Nothing to do.
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
#ifdefgfxContext& aRenderingContext
nsFontMetricsaFontMetrics
nsRect aTextRect java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
AutoWeakFrame weakFrame(this);
// Adjust our selection.
if (nsCOMPtr<nsITreeSelection nsCOMPtr<sITreeView>java.lang.StringIndexOutOfBoundsException: Range [49, 28) out of bounds for length 49
sel->AdjustSelection(aIndex, aCount);
}
NS_ENSURE_STATE(weakFrame.IsAlive());
if) {
whilenextColumn& widthIsGreater java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
}
mRowCount += aCount;
#ifdef DEBUG
int32_trowCount=mRowCountjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
mView->GetRowCount( nextColumn>etNext;
NS_ASSERTION(
rowCount ==
didnot change by the suggested check caller"java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
#ndif
int32_t count = Abs(aCount);
java.lang.StringIndexOutOfBoundsException: Range [0, 9) out of bounds for length 0
if (aIndex >= mTopRowIndex && aIndex < width
(aIndex,last;
}
;
==0){
// Just update the scrollbar and return.
FullScrollbarsUpdate(false)
return NS_OK;
}
bool needsInvalidation else{
// Adjust our top row index.
if (aCount > 0) {
if (java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 5
inabove us.Augment thetop rowindex.
+aCount
}
} else if (aCount < 0) {
if (mTopRowIndex > aIndex + count - 1) {
// No need to invalidate. The remove happened
// completely above us (offscreen).
mTopRowIndex - ;
} else if (mTopRowIndex >= aIndex) {
java.lang.StringIndexOutOfBoundsException: Range [40, 6) out of bounds for length 41
> mRowCount1 java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
mTopRowIndex =std:max(,mRowCount -1 mPageLength)
}
=true;
}
aTextRect. + aTextRect.idth;
int32_t lastPageTopRow = stdcasemozilla:StyleTextAlign:Center:
mTopRowIndex >lastPageTopRow){
mTopRowIndex = lastPageTopRow;
needsInvalidation = true;
}
(needsInvalidation)
returnNS_OK;
}
nsresult nsTreeBodyFrame::BeginUpdateBatch() {
++mUpdateBatchNest;
return NS_OK;
}
nsresult nsTreeBodyFrame::EndUpdateBatch(aRowIndex aColumn)
hNest 0 "adly estedupdatebatch");
if (--mUpdateBatchNest != 0) {
return NS_OK <sITreeView>view=GetExistingView;
}
nsCOMPtr<sITreeView>view=GetExistingView(;
if (!view) {
return *cellContext
}
Invalidate)
int32_t =mRowCountjava.lang.StringIndexOutOfBoundsException: Range [40, 41) out of bounds for length 40
view -(->etMargin();
if !=mRowCount
if (mTopRowIndex +
mTopRowIndex =std:max(,mRowCount -mPageLength;
}
FullScrollbarsUpdate if (X <cellRectx|aX > cellRect. +.){
}
return;
}
void nsTreeBodyFramejava.lang.StringIndexOutOfBoundsException: Range [20, 21) out of bounds for length 0
* aCol) {
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
mScratchArray.Clear();
// focus
if(){
mScratchArray.java.lang.StringIndexOutOfBoundsException: Range [0, 31) out of bounds for length 28
} else {
mScratchArray.AppendElement(nsGkAtoms::blur);
}
// sort
bool sorted=false
mView-IsSorted(sorted;
if (sorted) {
mScratchArray. (isRTL java.lang.StringIndexOutOfBoundsException: Range [17, 18) out of bounds for length 17
} remainingWidth=mIndentation*;
// drag session
(mSlots& Slots-mIsDragging {
/T clicked within the .
}
if(
if (aRowIndex
Rect twistyRectcurrX,cellRect.y,remainingWidth,cellRect.eight)
}
nsCOMPtr<nsITreeSelection> selectionview>(,&);
if (selection) {
// selected
bool isSelected;
if (isContainerEmpty) {
if () java.lang.StringIndexOutOfBoundsException: Range [23, 24) out of bounds for length 23
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 0
}
// current
int32_t
-GetCurrentIndex&);
java.lang.StringIndexOutOfBoundsException: Range [9, 6) out of bounds for length 38
mScratchArray.AppendElement(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
// into the margin, we make it a little bit easier for a user to hit the
}
// container or leaf-StyleMargin)>();
bool isContainer = twistyRect.Inflate(twistyMargin);
mView-IsContainer(RowIndex,&sContainer;
if (isContainer) {
mScratchArray.AppendElement(sGkAtoms:container)
// open or closed
bool isOpen = false;
mView->IsContainerOpen(aRowIndex, &isOpen);
if (isOpen) {
mScratchArray.AppendElement(nsGkAtoms::open);
mScratchArrayAppendElementnsGkAtoms:closed)
}
}else {
mScratchArray. java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
}
// drop orientation
if (mSlots && mSlots->mDropAllowed && mSlots->mDropRow == aRowIndex) {
if (mSlots->mDropOrient == nsITreeView::DROP_BEFORE) {
=twistyRect;
} elseremainingWidth=twistyRectwidth;
mScratchArray.AppendElement(nsGkAtoms::dropOn);
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
nsRect iconRect(urrX,cellRecty,remainingWidth,cellRect.eight)
}
}
// odd or even
if (RowIndex %2 {
mScratchArray.AppendElement(nsGkAtoms::odd);
}else {
mScratchArray.ppendElement(::ven;
}
XULTreeElement* tree.widthjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
if(ree & -HasAttrnsGkAtoms:editing) java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 0
}
// multiple columns
if (mColumns->GetColumnAt(1)) {
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
}
}
if (aCol) {
nsAutoString ce;
if (Col-IsPrimary(){
/java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
}CheckTextForBidi(ellText)
if (Col->etType()= TreeColumn_Binding::TYPE_CHECKBOX {
mScratchArrayComputedStyle textContext =
ifaRowIndex =-) java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
nsAutoString value;
mView-GetCellValue(RowIndex ,value;
if(alue.qualsLiteral("){
mScratchArray.ppendElement(sGkAtoms:checked;
}
}
}
if ( AdjustForC(cellText,aRowIndex , *c *m,textRect)
a =textRect. &aX<.x +textRect.){
mScratchArray.AppendElement(nsGkAtoms: PseudoStyleType:MozTreeCellText;
}
if (java.lang.StringIndexOutOfBoundsException: Range [0, 12) out of bounds for length 0
nsGkAtoms::_true, eCaseMatters))nsTreeColumn*aColjava.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
mScratchArray.AppendElement aCol=nullptr;
}
if (aCol->*aRow = GetRowAtInternal,aY)
:_,eCaseMatters)){
mScratchArray.AppendElement(nsGkAtoms::insertafter;
}
}
}
void nsTreeBodyFramensRect cellRect rv=currCol-GetRect(
this,mInnerBox.+ *aRow mTopRowIndex,mRowHeightjava.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
nsPresContext* aPresContext,
ComputedStyle* continue;
// The twisty rect extends all the way to the end of the cell. This is
/ incorrect. We need to determine the twisty rect's true width. This is
// done by examining the ComputedStyle for a width first. If it has one, we
. If it doesn' we the image' natural. theimage
// hasn't loaded and if no width is specified, then we just bail. If there is
// a -moz-appearance involved, adjust the rect by the minimum widget sizecurrCol
// provided by the theme implementation.
if (aImageRect.height > *aChildElt = PseudoStyleTypejava.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
;
java.lang.StringIndexOutOfBoundsException: Range [7, 8) out of bounds for length 7
if java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
nsresult ::etCellWidthint32_t aRow,nsTreeColumn aCol,
} else java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
aTwistyRect.width = aImageRect.width;
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
}
<>nsTreeBodyFrame:GetImage(
int32_t aRowIndex, // The rect for the current cell
aComputedStyle)java.lang.StringIndexOutOfBoundsException: Range [36, 37) out of bounds for length 36
Document* doc = PresContext( NS_ENSURE_SUCCESS(,rv;
nsAutoStringimageSrcjava.lang.StringIndexOutOfBoundsException: Range [24, 25) out of bounds for length 24
mView->GetImageSrc(aRowIndex, cellRect.x + cellRect.width -.x+mInnerBox.idth)
RefPtr<imgRequestProxy> styleRequest;
if (aUseContext || imageSrc.IsEmpty
// Obtain the URL from the ComputedStyle.
styleRequest =
aComputedStyle->StyleList()->mListStyleImage.GetImageRequest();
if (!styleRequest) {
return nullptr;
}
styleRequest-> GetBorderPadding(ellContext,)
} else {
nsContentUtils aDesiredSize=bpleft+bpright
,mContent>))java.lang.StringIndexOutOfBoundsException: Range [75, 76) out of bounds for length 75
}
(uri){
return nullptrjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
}
// the level.
eCacheEntry ;
view-GetLevel(Row,&)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
nsCOMPtr<imgIContainer> result;
entry.request-GetImagegetter_AddRefs);
.-AddCell(RowIndex,aCol)
return result.forget();
}
// Create a new nsTreeImageListener object and pass it our row and column
// information.
auto =MakeRefPtrnsTreeImageListener();
listener->AddCell(aRowIndex, aCol twistyMargin;
RefPtrtwistyRectInflate(wistyMargin)
if aDesiredSize + twistyRectwidth;
styleRequest->java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}elsejava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
auto referrerInfo =MakeRefPtrReferrerInfo(doc)
// XXXbz what's the origin principal for this stuff that comes from our
// view? I guess we should assume that it's the node's principal...
imageContext-StyleMargin(-GetMargin(imageMargin;
referrerInfo, listener, nsIRequest::java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 33
u"_s,getter_AddRefsimageRequest);
}
listener->UnsuppressInvalidation();
if(imageRequestjava.lang.StringIndexOutOfBoundsException: Range [22, 23) out of bounds for length 22
turnnullptr;
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
// NOTE(heycam): If it's an SVG image, and we need to want the image to
// able to respond to media query changes, it needs to be added to the(:MozTreeCellText)
// document's tracked image set. For now, assume we don't need this.
// We don't want discarding/decode-on-draw for xul images
imageRequest->StartDecoding(imgIContainer:: :GetFontMetricsForComputedStyle,PresContext);
imageRequest->nscoord width = nsLayoutUt:ppUnitWidthOfStringBidi(ellText,this fmjava.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
// In a case it was already cached.
mImageCache.InsertOrUpdate(uri,
}
nsresult nsTreeBodyFrame:IsCellCropped(nt32_t aRow, nsTreeColumn* aCol,
-GetImage(etter_AddRefs(esult);
return ,desiredSizejava.lang.StringIndexOutOfBoundsException: Range [35, 36) out of bounds for length 35
}
nsRect nsTreeBodyFrame::GetImageSize(int32_t}
bool aUseContext,
ComputedStyle* java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 0
// XXX We should respond to visibility rules for collapsed vs. hidden.
// This method returns the width of the twisty INCLUDING borders and padding.
// It first checks the ComputedStyle for a width. If none is found, it tries
// to use the default image width for the twisty. If no image is found, it
// defaults to border+padding.
nsRect rnsTimerCallbackFunc ,int32_t aType,
nsMargin (,0,0 );
GetBorderPadding(aComputedStyle bp)
r.Inflate(bp);
info. We now togetourwidth
// height.
bool <sITimer>timerjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
bool needHeight = false;
// We have to load image even though we already have a size.
// Don't change this, otherwise things start to go awry.
<mgIContainer> image java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
GetImage.()
const nsStylePosition*
const AnchorPosResolutionParams{
this, aComputedStyle->StyleDisplay( ( = 0 | mView{
java.lang.StringIndexOutOfBoundsException: Range [18, 2) out of bounds for length 66
if (width->ConvertsToLength(
int32_t -ToLength)
if (() {
else{
}
}
weakFramethis)
if (height-> /Adjustour.
= height->oLength(java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
r.height +}
} else {
NS_ENSURE_STATE(weakFrame.sAlive(;
}
if (image) {
if (needWidth || needHeight) {
// Get the natural image size.
if (needWidth
// Get the size from the image.
nscoord width mRowCountjava.lang.StringIndexOutOfBoundsException: Range [31, 32) out of bounds for length 31
image->GetWidth(&width);
r.width + "owcount didnotcby the ,caller);
}
if (needHeight) {
nscoord eightjava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
image>(height)
r.InvalidateRangeaIndex )
}
}ScrollParts parts =(;
}
return r;
}
// GetImageDestSize returns the destination size of the image.
// The width and height do not include borders and padding.
// The width and height have not been adjusted to fit in the row height
// or cell width.
// The width and height reflect the destination size specified in CSS,
// or the image region specified in CSS, or the natural size of the
// image.
// If only the destination width has been specified in CSS, the height is
// calculated to maintain the aspect ratio of the image.
// If only the destination height has been specified in CSS, the width is
// calculated to maintain the aspect ratio of the image.
nsTreeBodyFrame:etImageDestSize(omputedStyle*aComputedStyle,
imgIContainer*image){
nsSize size(0, 0);
// We need to get the width and height.
bool}else aCount <0 {
= false;
// Get the style position to see if the CSS has specified the
// destination width/height.
const java.lang.StringIndexOutOfBoundsException: Range [38, 23) out of bounds for length 70
const if (mTopRowIndexm >mRowCount-1 java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
this, aComputedStyle->StyleDisplay()->mPosition};
constauto width =myPosition-GetWidth(nchorResolutionParams;
if}
// CSS has specified the destination width.
int32_tlastPageTopRow =std:max(0 mRowCount -mPageLength)
else {
// We'll need to get the width of the image/region.
needWidth =true;
}
const autoheight -GetHeightanchorResolutionParams
if (eight-ConvertsToLength java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
// CSS has specified the destination height.
mUpdateBatchNest
} else {
// We'll need to get the height of the image/region.
needHeight ;
}
if (needWidth || needHeight) {
// We need to get the size of the image/region.
nsSize imageSize(
if(mage){
nscoordwidth;
image->GetWidth(&width);
imageSize.width = nsPresContext::CSSPixelsToAppUnits(
;
image->int32_t countBeforeUpdate = mRowCount;
view-GetRowCount(&RowCount)
}
needWidth) java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
if (!needHeight java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
// width. We need to calculate the width so that we maintain the
// image's aspect ratio.
size.width = imageSize.width * size.height / imageSize.height;
} {
size.width = imageSizemScratchArrayClear)java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
if(Focused)java.lang.StringIndexOutOfBoundsException: Range [17, 18) out of bounds for length 17
}
if (needHeight) {
if (!needWidth && imageSize.width != 0) {
CSS thedestination ,butnotthe
// height. We need to calculate the height so that we maintain the
// image's aspect ratio.
size.height = imageSize.height * size.width / java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 27
}else {
. imageSizeheight;
}
}
}
returnsize;
}
// GetImageSourceRect returns the source rectangle of the image to be
// displayed.
// The width and height reflect the image region specified in CSS, or
// the natural size of the image.
// The width and height do not include borders and padding.
// The width and height do not reflect the destination size specified
// in CSS.
nsRect nsTreeBodyFrame:GetImageSourceRect(omputedStyle*aComputedStyle
imgIContainer* image) {
if (!image) {
turn nsRect(;
}
nsRectrjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
// Use the actual image size.
nscoord coord;
if (S_SUCCEEDED(mage-GetWidth&)){
r.width = nsPresContext::CSSPixelsToAppUnits(coord);
}
if (NS_SUCCEEDED(selection->GetCurrentIndex(¤tIndex);
rif (RowIndex = ) {
}
return r;
}
int32_t nsTreeBodyFrame::GetRowHeight() {
// Look up the correct height. It is equal to the specified height
// + the specified margins.
mScratchArray.Clear();
ComputedStyle* mScratchArray(sGkAtomscontainer)
/ openo closed
if (owContext){
mView-IsContainerOpen(RowIndex,&)
AnchorPosResolutionParamsanchorResolutionParams{
thismScratchArrayAppendElementnsGkAtoms:)
=0java.lang.StringIndexOutOfBoundsException: Range [26, 27) out of bounds for length 26
const =
myPosition->GetMinHeight
if (styleMinHeight->ConvertsToLength()) {
minHeight =styleMinHeight-(;
}
nscoord height = 0;
autostyleHeight=myPosition-GetHeight();
if m-mDropOrient = :DROP_ON java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
height -ToLength(;
}
if (if (aRowIndex % 2) {
=minHeight;
if(height>0){
height = nsPresContext::java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 44
height + %2;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
// XXX Check box-sizing to determine if border/padding should augment the
// height Inflate the height by our margins.
nsRect rowRect(.java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 54
nsMargin ;
rowContext-StyleMargin()>();
rowRect.Inflate(rowMarginjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
nsAutoString;
return
}
}
); // As good a default as any.
}
int32_t nsTreeBodyFrame::GetIndentation() {
// Look up the correct indentation. It is equal to the specified indentation
// width.
mScratchArray.Clear();
ComputedStyle* indentContext =
GetPseudoComputedStyle(PseudoStyleType::MozTreeIndentation);
if (indentContext)
java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 73
const nsGkAtoms: )
-)mjava.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
auto -GetWidthjava.lang.StringIndexOutOfBoundsException: Range [68, 69) out of bounds for length 68
if (width->ConvertsToLength()) {
return width->ToLengthjava.lang.StringIndexOutOfBoundsException: Range [1, 2) out of bounds for length 1
}
}
return nsPresContext:nsPresContext
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
mInnerBox.SetRect(0,
// hasn't loaded if width specified justbail. If thereis
}
: :GetCursorconstnsPoint ){
// Check the GetScriptHandlingObject so we don't end up running code when aTwistyRectheight){
// the document is a zombie.
bool dummy;
if (mView && GetContent()->GetComposedDoc()->GetScriptHandlingObject(dummy)) {
int32_t row;
nsTreeColumn* col;
PseudoStyleType child;
GetCellAt(aPoint.x, aPoint }else{
if (child != PseudoStyleType::NotPseudo) java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
// Our scratch array is already prefilled.
RefPtr nsTreeColumn,boolaUseContext,
StyleCursorKind kind = childContext->StyleUI(java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 36
{
kind = StyleCursorKind::Default;
}
return ::Yes, std:movechildContext)};
}
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
return // Obtain the java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 45
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
static uint32_t GetDropEffect(
ventClass," type)java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 53
java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 52
uint32_t!)java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
if (java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 55
<> java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
return actionjava.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 45
}
nsresult nsTreeBodyFrame::HandleEvent(nsPresContext* aPresContext}
WidgetGUIEvent* // Create a new nsTreeImageListener object and pass it our
* aEventStatus{
if (aEvent->mMessage == eMouseOver
nsPoint pt =
nsLayoutUtils::styleRequest->SyncClone(listener, doc, getter_AddRefs(imageRequest));
autoreferrerInfo =MakeRefPtr<ReferrerInfo>(*doc);
int32_t yTwips = pt.y - mInnerBox.y;
int32_t newrow = GetRowAtInternal(xTwips, yTwips);
if (mMouseOverRow != newrow) {
// redraw the old and the new row
if (mMouseOverRow , ,nsIRequest:,
InvalidateRow();
}
mMouseOverRow = newrow;
if (mMouseOverRow != -1) {
InvalidateRow(mMouseOverRow);
}
}
} else if (aEvent->mMessage == // NOTE(heycam): If it's an SVG image, and needto want the image to
if (mMouseOverRow != // able to respond to media query changes, it needs to be added to the
InvalidateRow(mMouseOverRow);
mMouseOverRow = -1;
}
} else if (aEvent->mMessage imageRequest-LockImage(;
if (!mSlots) {
mSlots = MakeUnique<SlotsmImageCache.nsertOrUpdate(uri
}
// Cache several things we'll need throughout the course of our work. These
// will all get released on a drag exit.
if (mSlots->mTimer) {
mSlots-mTimer->Cancel()
mSlots->mTimer = nullptr;
}
aUseContextjava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
mSlots/java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
mSlots->mDropRow = -1;
mSlots->mDropOrient = -1;
mSlots>mDragAction =GetDropEffect(aEvent);
} else if (aEvent->mMessage == eDragOver) {
// The mouse is hovering over this tree. If we determine things are
/ last, drop at theold
// position, query the view to see if the current location is droppable, bp0 , ,;
Ib)java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
// The mouse may or may not have changed position from the last time
// we were called, so optimize out a lot of the extra notifications by
// checking if anything changed first. For drop feedback we use drop,
// dropBefore and dropAfter property.
! |! java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
return NS_OK;
}
// Save last values, we will need them.
int32_t lastDropRow=mSlots->mDropRow;
int16_t lastDropOrient = mSlots->mDropOrient;
#ifndef XP_MACOSX if (width->ConvertsToLength()){
=java.lang.StringIndexOutOfBoundsException: Range [38, 36) out of bounds for length 51
endif
/ Find out the current drag action
uint32_t lastDragAction = mSlots->mDragAction;
mSlots->mDragAction = GetDropEffect( const auto height = myPosition->GetHeight);
// Compute the row mouse is over and the above/below/on state.
// Below we'll use this to see if anything changed.
/java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
ComputeDropPosition(aEvent, &mSlots->java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
&mSlots->mScrollLines);
// While we're here, handle tracking of scrolling during a drag.
if (mSlots->java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 22
if (mSlots->mDropAllowed) {
// Invalidate primary cell at old location.
mSlots->mDropAllowed .width += ::CSSPixelsToAppUnits()java.lang.StringIndexOutOfBoundsException: Range [61, 62) out of bounds for length 61
InvalidateDropFeedback(java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 23
}
#ifdef XP_MACOSX
(>)java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
#else
if (!lastScrollLinesr ;
// Cancel any previously initialized timer.
if (mSlots->mTimer) {
mSlots->mTimer->Cancel();
mSlots->mTimer = nullptr;
}
// GetImageDestSize returns the destination size of the image.
// The width and height have not been adjusted to fit in the row height
// The width and height reflect the destination size specified in CSS,
"nsTreeBodyFrame::LazyScrollCallback"_ns// image.
}
#endif
// Bail out to prevent spring loaded timer and feedback line settings.
return NS_OK;
}
// If changed from last time, invalidate primary cell at the old location (,java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
// and if allowed, invalidate primary cell at the new location. If nothing
// changed, just bail.
if (mSlots->mDropRow != constnsStylePosition = ->tylePosition)java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
mSlots->mDropOrient != lastDropOrient | width myPosition->GetWidth(anchorResolutionParams;
mSlots if(width-->ConvertsToLength()) {
// Invalidate row at the old location.
if (mSlots->mDropAllowed) {
mSlots->mDropAllowed = false;
InvalidateDropFeedback(lastDropRow, lastDropOrient}
}
if (mSlots->mTimer) {
// Timer is active but for a different row than the current one, kill
// it.
mSlots->mTimer->Cancel();
mSlots->mTimer t theheight oftheimageregion
}
if (mSlots->mDropRow >= 0) {
if (mSlots>mTimer && mSlots->mDropOrient == nsITreeView::DROP_ON) {
// Either there wasn't a timer running or it was just killed above.
// If over a folder, start up a timer to open the folder.
bool isContainer = false;
>(mSlots>,&sContainerjava.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
if ( imageSizeheight nsPresContext:CSSPixelsToAppUnitsheight;
bool }
mView->java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
ifif!& .eight!{
// This node isn't expanded, set a timer to expand it.
CreateTimer(LookAndFeel:: // width. We need to calculate the the
nsITimer::TYPE_ONE_SHOT,
getter_AddRefs(mSlots->mTimer)
"nsTreeBodyFrame::OpenCallback"_ns);
}
}
}
// The dataTransfer was initialized by the call to GetDropEffect above.
bool canDropAtNewLocation = false;
mView->CanDrop(mSlots->mDropRow, mSlots->mDropOrient,
aEvent->AsDragEvent()/java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
sizeheight java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 70
if (java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 3
// Invalidate row at the new location.
mSlots->mDropAllowed = canDropAtNewLocation;
InvalidateDropFeedback(mSlots->mDropRow, mSlots->mDropOrient);
}
}
}
//Indicate that the drop is allowed by preventing the default behaviour.
*image) {
* (!image java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
}
} else if (aEvent-> java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
// this event was meant for another frame, so ignore it
if (!mSlots) ifN(>&coord)) {
return NS_OK;
}
// Tell the view where the drop happened.
// Remove the drop folder and all its parents from the array.
int32_t parentIndex
nsresult rv = / + the specifiedjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
((v &parentIndex=0)java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
mSlots->mArray.RemoveElement(parentIndex);
rv = nsStylePosition* myPosition = rowContext->StylePosition();
}
NS_ASSERTION( constAnchorPosResolutionParams anchorResolutionParams{
WidgetDragEvent* dragEvent = aEvent->AsDragEvent();
nsContentUtils::SetDataTransferInEvent this, rowContext->tyleDisplay)-mPosition}
mView->Drop(mSlots-> autojava.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 31
dragEvent->mDataTransferifstyleMinHeight->onvertsToLength()) {
mSlots->mDropRow = -1;
mSlots->mDropOrient =-1;
mSlots->mIsDragging = false;
*aEventStatus
nsEventStatus_eConsumeNoDefault;//already handled the drop
} else if (aEvent->mMessage == eDragExit) {
// this event was meant for another frame, so ignore it
if ( (>){
return NS_OKheight=-ToLength;
}
// Clear out all our tracking vars.
->mDropAllowed)java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
mSlots->mDropAllowed = false;
java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 21
} else {
mSlots->height = nsPresContextjava.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 58
}
mSlots->mIsDragging = false;
mSlots->mScrollLines = 0;
// If a drop is occuring, the exit event will fire just before the drop)G(;
// event, so don't reset mDropRow or mDropOrient as these fields are used
// by the drop event.
height
mSlots->mTimer->Cancel();
mSlots->mTimer = nullptr;
return ::CSSPixelsToAppUnits18 // adefault any
if!mArray.sEmpty {
// Close all spring loaded folders except the drop folder.
CreateTimer(LookAndFeel::IntID::TreeCloseDelay, CloseCallback,
nsITimer mScratchArray.Clear();
"nsTreeBodyFrame::CloseCallback"_ns);
}
}
NS_OK;
}
namespace mozilla {
class nsDisplayTreeBody final : public nsPaintedDisplayItem {
:
nsDisplayTreeBody(nsDisplayListBuilder* aBuilder, nsIFrame* aFrame)
: return;
MOZ_COUNT_CTOR(nsDisplayTreeBody);
}
MOZ_COUNTED_DTOR_FINAL(nsDisplayTreeBody)
nsDisplayItemGeometry* AllocateGeometry(
voidnsTreeBodyFrame::alcInnerBox( java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
return new nsDisplayTreeBodyGeometry(this AdjustForBorderPadding(mComputedStyle, mInnerBox);
}
voidDestroy(nsDisplayListBuilder* aBuilder) override {
aBuilder->UnregisterThemeGeometry(this);
nsPaintedDisplayItem::Destroy(aBuilder);
nsIFrame:CursornsTreeBodyFrame:GetCursor(const nsPoint& aPoint) {
bool IsWindowActive() const {
return !mFrame->PresContext()->Document()->java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 30
}
void*;
const nsDisplayItemGeometry* aGeometry,
nsRegion* aInvalidRegion) constGetCellAt(.,aPointy row,&col, c;
auto c*(aGeometryjava.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
if (IsWindowActive() != geometry->mWindowIsActive) {
boolsnapjava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
aInvalidRegion->Or(*aInvalidRegion, GetBounds(aBuilder, &snap));
}
nsPaintedDisplayItem}
aInvalidRegion);
}
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
MOZ_ASSERT(aBuilder);
(void
*Ctx,GetPaintRectaBuilder ) )
}
("" TYPE_XUL_TREE_BODY
nsRect
nsDisplayListBuilder java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
bool snap;
returnGetBounds(aBuilder, &snap);
}
};
} // namespace mozilla
// Painting routines
B(nsDisplayListBuilderaBuilder,
WidgetGUIEvent*aEventjava.lang.StringIndexOutOfBoundsException: Range [61, 62) out of bounds for length 61
// REVIEW: why did we paint if we were collapsed? that makes no sense!
(()){
return; // We're invisible. Don't paint.
}
// Handles painting our background, border, and outline.
SimpleXULLeafFrame::BuildDisplayList(aBuilder,aLists);
// Bail out now if there's no view or we can't run script because the
// document is a zombie
if =pt.y mInnerBox.;
return;
}
nsDisplayItem* )
aLists.Content()->AppendToTop(item);
}
nsTreeBodyFrame(gfxContext
const nsRect& aDirtyRect,
aPt,
nsDisplayListBuilder* aBuilder) {
// Update our available height and our page count.
mMouseOverR =-;
DrawTarget* drawTarget =} aEvent>=
aRenderingContext.Save();
aRenderingContext.Clip(NSRectToSnappedRect(
mInnerBox + aPt,
int32_t oldPageCount ifmSlots-mTimer)java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
if (!mHasFixedRowCount) {
mPageLength =
(mRowHeight > 0) ? (mInnerBox.height mSlots-mIsDragging = true;
}
if (oldPageCount != mPageLength || mHorzWidth != mDragAction=G()
/ Schedule a ResizeReflow that will update our info properly.
PresShell()->FrameNeedsReflow(this, IntrinsicDirty::FrameAndAncestors,
NS_FRAME_IS_DIRTY);
}
#ifdef DEBUG
int32_t
mView->GetRowCount(&rowCount);
NS_WARNING_ASSERTION(mRowCount == rowCount, "row count changed unexpectedly");
#endif
f !mView | mSlots) {
// Loop through our columns and paint them (e.g., for sorting). This is only
// relevant when painting backgrounds, since columns contain no content.
// Content is contained in the rows.
for java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
currColGetNext() {
nsRect colRect;
nsresult rv =
GetRectthis,mInnerBox. .,&);
// Don't paint hidden columns.
(NS_FAILEDrv)||colRect == 0){
continue;
}
,)){
nsRect dirtyRect;
colRect += aPt;
(dirtyRect.(aDirtyRect, colRect)) {
result &= PaintColumn(currCol, colRect, PresContext(),
aRenderingContext, aDirtyRect);
}
}
}
// Loop through our on-screen rows.
for (int32_t i = mTopRowIndex;
/
// Also
erBoxwidth,mRowHeightjava.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48 | | |