From 6b3e46bd52fb692dac4f64fb11fea8c5fca246f4 Mon Sep 17 00:00:00 2001 From: "mjudge%netscape.com" Date: Thu, 2 Sep 1999 01:36:49 +0000 Subject: [PATCH] new tweak for selecting from disparate ranges to narrow ones in tables. works great now. git-svn-id: svn://10.0.0.236/trunk@45615 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/layout/base/src/nsRangeList.cpp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/mozilla/layout/base/src/nsRangeList.cpp b/mozilla/layout/base/src/nsRangeList.cpp index 8bf9edb1223..40951c3087e 100644 --- a/mozilla/layout/base/src/nsRangeList.cpp +++ b/mozilla/layout/base/src/nsRangeList.cpp @@ -2074,7 +2074,27 @@ nsDOMSelection::FixupSelectionPoints(nsIDOMRange *aRange , nsDirection *aDir, PR //get common parent nsCOMPtr parent; - res = aRange->GetCommonParent(getter_AddRefs(parent)); + nsCOMPtr subRange; + res = nsComponentManager::CreateInstance(kRangeCID, nsnull, + nsIDOMRange::GetIID(), + getter_AddRefs(subRange)); + if (NS_FAILED(res) || !subRange) + return NS_ERROR_FAILURE; + result = subRange->SetStart(startNode,startOffset); + if (NS_FAILED(result)) + return result; + result = subRange->SetEnd(endNode,endOffset); + if (NS_FAILED(result)) + { + result = subRange->SetEnd(startNode,startOffset); + if (NS_FAILED(result)) + return result; + result = subRange->SetStart(endNode,endOffset); + if (NS_FAILED(result)) + return result; + } + + res = subRange->GetCommonParent(getter_AddRefs(parent)); if (NS_FAILED(res) || !parent) return res;