From 40ec711bc08a1911b6f97736f0e47b12a4056bec Mon Sep 17 00:00:00 2001 From: "saari%netscape.com" Date: Wed, 24 May 2000 08:28:41 +0000 Subject: [PATCH] Fix for nsbeta2+ 33735, r=joki --- layout/base/nsPresShell.cpp | 10 +++++++++- layout/html/base/src/nsPresShell.cpp | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/layout/base/nsPresShell.cpp b/layout/base/nsPresShell.cpp index a55f0f21c541..17d093cd7533 100644 --- a/layout/base/nsPresShell.cpp +++ b/layout/base/nsPresShell.cpp @@ -3499,8 +3499,16 @@ PresShell::HandleEvent(nsIView *aView, rv = frame->GetFrameForPoint(mPresContext, eventPoint, NS_FRAME_PAINT_LAYER_BACKGROUND, &mCurrentEventFrame); if (rv != NS_OK) { // XXX Is this the right thing to do? +#ifdef XP_MAC + // On the Mac it is possible to be running with no windows open, only the native menu bar. + // In this situation, we need to handle key board events but there are no frames, so + // we set mCurrentEventContent and that works itself out in HandleEventInternal. + mCurrentEventContent = mDocument->GetRootContent(); + mCurrentEventFrame = nsnull; +#else mCurrentEventFrame = frame; aHandled = PR_FALSE; +#endif rv = NS_OK; } } @@ -3564,8 +3572,8 @@ PresShell::HandleEvent(nsIView *aView, PopCurrentEventInfo(); } else { - rv = NS_OK; aHandled = PR_FALSE; + rv = NS_OK; } return rv; diff --git a/layout/html/base/src/nsPresShell.cpp b/layout/html/base/src/nsPresShell.cpp index a55f0f21c541..17d093cd7533 100644 --- a/layout/html/base/src/nsPresShell.cpp +++ b/layout/html/base/src/nsPresShell.cpp @@ -3499,8 +3499,16 @@ PresShell::HandleEvent(nsIView *aView, rv = frame->GetFrameForPoint(mPresContext, eventPoint, NS_FRAME_PAINT_LAYER_BACKGROUND, &mCurrentEventFrame); if (rv != NS_OK) { // XXX Is this the right thing to do? +#ifdef XP_MAC + // On the Mac it is possible to be running with no windows open, only the native menu bar. + // In this situation, we need to handle key board events but there are no frames, so + // we set mCurrentEventContent and that works itself out in HandleEventInternal. + mCurrentEventContent = mDocument->GetRootContent(); + mCurrentEventFrame = nsnull; +#else mCurrentEventFrame = frame; aHandled = PR_FALSE; +#endif rv = NS_OK; } } @@ -3564,8 +3572,8 @@ PresShell::HandleEvent(nsIView *aView, PopCurrentEventInfo(); } else { - rv = NS_OK; aHandled = PR_FALSE; + rv = NS_OK; } return rv;