fix for setcapture. passes events to the nsHTMLFrame's areaframe when events are trapped to a given frame's view.

This commit is contained in:
mjudge@netscape.com
2000-04-12 03:04:11 +00:00
parent c54dc2465c
commit abfa134534
19 changed files with 401 additions and 120 deletions

View File

@@ -19,6 +19,9 @@
*
* Contributor(s):
*/
#include "nsCOMPtr.h"
#include "nsLayoutAtoms.h"
#include "nsFrameTraversal.h"
#include "nsFrameList.h"
@@ -211,7 +214,7 @@ NS_IMETHODIMP
nsLeafIterator::Next()
{
//recursive-oid method to get next frame
nsIFrame *result;
nsIFrame *result = nsnull;
nsIFrame *parent = getCurrent();
if (!parent)
parent = getLast();
@@ -227,7 +230,8 @@ nsLeafIterator::Next()
result = parent;
}
else {
while(parent){
nsCOMPtr<nsIAtom>atom;
while(parent && NS_SUCCEEDED(parent->GetFrameType(getter_AddRefs(atom))) && atom != nsLayoutAtoms::rootFrame){
if (NS_SUCCEEDED(parent->GetNextSibling(&result)) && result){
parent = result;
while(NS_SUCCEEDED(parent->FirstChild(mPresContext, nsnull,&result)) && result)
@@ -238,7 +242,7 @@ nsLeafIterator::Next()
break;
}
else
if (NS_FAILED(parent->GetParent(&result)) || !result){
if (NS_FAILED(parent->GetParent(&result)) || !result || (NS_SUCCEEDED(result->GetFrameType(getter_AddRefs(atom))) && atom == nsLayoutAtoms::rootFrame)){
result = nsnull;
break;
}