From cff4b925f983e3846c81d70eabdca691eb047cd2 Mon Sep 17 00:00:00 2001 From: "roc+%cs.cmu.edu" Date: Sun, 19 Feb 2006 20:14:11 +0000 Subject: [PATCH] Bug 326827. Don't allow mouse events to target button contents. r+sr=dbaron git-svn-id: svn://10.0.0.236/trunk@190549 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/layout/forms/nsHTMLButtonControlFrame.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/mozilla/layout/forms/nsHTMLButtonControlFrame.cpp b/mozilla/layout/forms/nsHTMLButtonControlFrame.cpp index 6b1a2f2045e..3eba11b7681 100644 --- a/mozilla/layout/forms/nsHTMLButtonControlFrame.cpp +++ b/mozilla/layout/forms/nsHTMLButtonControlFrame.cpp @@ -209,11 +209,14 @@ nsHTMLButtonControlFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder, } nsDisplayListCollection set; - nsresult rv = - BuildDisplayListForChild(aBuilder, mFrames.FirstChild(), aDirtyRect, set, - DISPLAY_CHILD_FORCE_PSEUDO_STACKING_CONTEXT); - NS_ENSURE_SUCCESS(rv, rv); - // That should put the display items in set.Content() + // Do not allow the child subtree to receive events. + if (!aBuilder->IsForEventDelivery()) { + nsresult rv = + BuildDisplayListForChild(aBuilder, mFrames.FirstChild(), aDirtyRect, set, + DISPLAY_CHILD_FORCE_PSEUDO_STACKING_CONTEXT); + NS_ENSURE_SUCCESS(rv, rv); + // That should put the display items in set.Content() + } // Put the foreground outline and focus rects on top of the children set.Content()->AppendToTop(&onTop); @@ -230,7 +233,7 @@ nsHTMLButtonControlFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder, nsRect rect(aBuilder->ToReferenceFrame(this), GetSize()); rect.Deflate(border); - rv = OverflowClip(aBuilder, set, aLists, rect); + nsresult rv = OverflowClip(aBuilder, set, aLists, rect); NS_ENSURE_SUCCESS(rv, rv); rv = DisplayOutline(aBuilder, aLists);