From c14d0a856133db6f877b1bb8877716e6e1164354 Mon Sep 17 00:00:00 2001 From: "uriber%gmail.com" Date: Fri, 15 Dec 2006 09:32:24 +0000 Subject: [PATCH] Bug 363378: Caret gets stuck (or moves incorrectly) in empty table cells when using left/right arrow keys. r+sr=roc --- layout/generic/nsContainerFrame.cpp | 16 ++++++++++++++++ layout/generic/nsContainerFrame.h | 2 ++ 2 files changed, 18 insertions(+) diff --git a/layout/generic/nsContainerFrame.cpp b/layout/generic/nsContainerFrame.cpp index 2b031af20216..dd0d4dfad736 100644 --- a/layout/generic/nsContainerFrame.cpp +++ b/layout/generic/nsContainerFrame.cpp @@ -239,6 +239,22 @@ nsContainerFrame::IsLeaf() const return PR_FALSE; } +PRBool +nsContainerFrame::PeekOffsetNoAmount(PRBool aForward, PRInt32* aOffset) +{ + NS_ASSERTION (aOffset && *aOffset <= 1, "aOffset out of range"); + // Don't allow the caret to stay in an empty (leaf) container frame. + return PR_FALSE; +} + +PRBool +nsContainerFrame::PeekOffsetCharacter(PRBool aForward, PRInt32* aOffset) +{ + NS_ASSERTION (aOffset && *aOffset <= 1, "aOffset out of range"); + // Don't allow the caret to stay in an empty (leaf) container frame. + return PR_FALSE; +} + ///////////////////////////////////////////////////////////////////////////// // Helper member functions diff --git a/layout/generic/nsContainerFrame.h b/layout/generic/nsContainerFrame.h index 0ede9a9a5854..874dfe7720ef 100644 --- a/layout/generic/nsContainerFrame.h +++ b/layout/generic/nsContainerFrame.h @@ -69,6 +69,8 @@ public: virtual void ChildIsDirty(nsIFrame* aChild); virtual PRBool IsLeaf() const; + virtual PRBool PeekOffsetNoAmount(PRBool aForward, PRInt32* aOffset); + virtual PRBool PeekOffsetCharacter(PRBool aForward, PRInt32* aOffset); #ifdef DEBUG NS_IMETHOD List(FILE* out, PRInt32 aIndent) const;