diff -r f2f7b3284356 -r 91ef7621b7fc textrendering/textformatting/tbox/CARET.CPP --- a/textrendering/textformatting/tbox/CARET.CPP Mon May 03 14:13:26 2010 +0300 +++ b/textrendering/textformatting/tbox/CARET.CPP Thu Jun 24 11:18:23 2010 +0800 @@ -20,6 +20,11 @@ #include "FRMLAYDT.H" #include "FRMCONST.H" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "CARETTraces.h" +#endif + #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS #include "FRMCONST_INTERNAL.H" #include "FRMCONST_PARTNER.H" @@ -37,6 +42,11 @@ void TCursorPosition::CheckSelection(TBool aSelect) { + if (IsSelection() && iDocPos.iPos == iAnchor) + { + OstTrace0( TRACE_DUMP, TCURSORPOSITION_CHECKSELECTION, "EFSelectedRangeZeroLen" ); + } + __ASSERT_DEBUG(!IsSelection() || iDocPos.iPos != iAnchor,FormPanic(EFSelectedRangeZeroLen)); CheckNullSelection(); TUint drawSelectionFlags = 0; @@ -107,6 +117,10 @@ TInt extraScroll; TBool cursorVisible = EFalse; + if (aSelection.iCursorPos<0 || aSelection.iCursorPos>iLayout->DocumentLength()) + { + OstTrace0( TRACE_DUMP, TCURSORPOSITION_SETSELECTIONL, "EFInvalidDocPos" ); + } __ASSERT_DEBUG(aSelection.iCursorPos>=0 && aSelection.iCursorPos<=iLayout->DocumentLength() ,FormPanic(EFInvalidDocPos)); iLayout->PosRangeInBand(firstVisChar); @@ -287,6 +301,10 @@ CheckSelection(aDragSelectOn); DoSetXyPos(aPos); TRAPD(ret,pixels=CheckCursorOnScreenL(aPos.iY)); + if (ret) + { + OstTrace0( TRACE_FATAL, TCURSORPOSITION_SETXYPOSL, "EFShouldNotLeave" ); + } __ASSERT_ALWAYS(!ret,FormPanic(EFShouldNotLeave)); UpdateLatentX(aPos.iX); UpdateLatentY(aPos.iY); @@ -548,6 +566,10 @@ TBool TCursorPosition::LeftRightL(TTmPosInfo2& aPos, TTmLineInfo& aLine, TMovementType& aMove) { TTmPosInfo2 posInfo; + if (!(aMove == EFLeft || aMove == EFRight)) + { + OstTrace0( TRACE_DUMP, TCURSORPOSITION_LEFTRIGHTL, "EFIncorrectCursorMovement" ); + } __ASSERT_DEBUG(aMove == EFLeft || aMove == EFRight, FormPanic(EFIncorrectCursorMovement)); TBool found = EFalse; @@ -613,6 +635,10 @@ @param aLine Returns details of the line containing aPos.*/ void TCursorPosition::StartEnd(TTmPosInfo2& aPos, TTmLineInfo& aLine, TMovementType& aMove) { + if (aMove != EFLineBeg && aMove != EFLineEnd) + { + OstTrace0( TRACE_DUMP, TCURSORPOSITION_STARTEND, "EFIncorrectCursorMovement" ); + } __ASSERT_DEBUG(aMove == EFLineBeg || aMove == EFLineEnd, FormPanic(EFIncorrectCursorMovement)); iLayout->FindDocPos(iDocPos, aPos, &aLine); @@ -632,6 +658,10 @@ @param aLine returns details of the line containing aPos. */ void TCursorPosition::UpDownL(TTmPosInfo2& aPos, TTmLineInfo& aLine, TMovementType& aMove) { + if (aMove != EFLineUp && aMove != EFLineDown) + { + OstTrace0( TRACE_DUMP, TCURSORPOSITION_UPDOWNL, "EFIncorrectCursorMovement" ); + } __ASSERT_DEBUG(aMove == EFLineUp || aMove == EFLineDown, FormPanic(EFIncorrectCursorMovement)); iLayout->FindDocPos(iDocPos, aPos, &aLine); @@ -677,6 +707,10 @@ // Move the display one page and put the cursor back in the same place (as far as possible). TInt TCursorPosition::PageScrollL(TMovementType& aMove) { + if (aMove!=EFPageUp && aMove!=EFPageDown) + { + OstTrace0( TRACE_DUMP, TCURSORPOSITION_PAGESCROLLL, "EFIncorrectCursorMovement" ); + } __ASSERT_DEBUG(aMove==EFPageUp || aMove==EFPageDown,FormPanic(EFIncorrectCursorMovement)); TPoint scrPos; TInt pixelsScrolled; @@ -725,6 +759,10 @@ TInt pixels=0; iLayout->GetLineRect(aY,cursorLine); + if (cursorLine.iTl.iY>aY || cursorLine.iBr.iY=aY,FormPanic(EFPixelNotInFormattedLine)); if (cursorLine.iTl.iY<0 && cursorLine.iBr.iY=botRow) + { + OstTrace0( TRACE_DUMP, DUP1_TCURSORPOSITION_CHECKCURSORONSCREENL, "EFCursorOffDisplay" ); + } __ASSERT_DEBUG(aY>=0 || aY=botRow || cursorLine.iBr.iY>=botRow + || (cursorLine.iTl.iY+pixels>=0 && cursorLine.iBr.iY+pixels<=botRow)) ) + { + OstTrace0( TRACE_DUMP, DUP2_TCURSORPOSITION_CHECKCURSORONSCREENL, "EFCursorOffDisplay" ); + } __ASSERT_DEBUG(cursorLine.Height()>=botRow || cursorLine.iBr.iY>=botRow || (cursorLine.iTl.iY+pixels>=0 && cursorLine.iBr.iY+pixels<=botRow),FormPanic(EFCursorOffDisplay)); return pixels;