diff --git a/mozilla/content/events/src/nsEventStateManager.cpp b/mozilla/content/events/src/nsEventStateManager.cpp index 9c6d3e97d4c..d1618d8e13d 100644 --- a/mozilla/content/events/src/nsEventStateManager.cpp +++ b/mozilla/content/events/src/nsEventStateManager.cpp @@ -736,18 +736,27 @@ nsEventStateManager::PreHandleEvent(nsIPresContext* aPresContext, //A) Set focus ChangeFocus(content, nsnull, PR_TRUE); - //B) Click on it. - nsEventStatus status = nsEventStatus_eIgnore; - nsMouseEvent event; - event.eventStructType = NS_MOUSE_EVENT; - event.message = NS_MOUSE_LEFT_CLICK; - event.isShift = PR_FALSE; - event.isControl = PR_FALSE; - event.isAlt = PR_FALSE; - event.isMeta = PR_FALSE; - event.clickCount = 0; - event.widget = nsnull; - content->HandleDOMEvent(mPresContext, &event, nsnull, NS_EVENT_FLAG_INIT, &status); + nsresult rv = getPrefService(); + PRBool activate = PR_TRUE; + + if (NS_SUCCEEDED(rv)) { + mPrefService->GetBoolPref("accessibility.accesskeycausesactivation", &activate); + } + + if (activate) { + //B) Click on it if the users prefs indicate to do so. + nsEventStatus status = nsEventStatus_eIgnore; + nsMouseEvent event; + event.eventStructType = NS_MOUSE_EVENT; + event.message = NS_MOUSE_LEFT_CLICK; + event.isShift = PR_FALSE; + event.isControl = PR_FALSE; + event.isAlt = PR_FALSE; + event.isMeta = PR_FALSE; + event.clickCount = 0; + event.widget = nsnull; + content->HandleDOMEvent(mPresContext, &event, nsnull, NS_EVENT_FLAG_INIT, &status); + } *aStatus = nsEventStatus_eConsumeNoDefault; } diff --git a/mozilla/modules/libpref/src/init/all.js b/mozilla/modules/libpref/src/init/all.js index 4b59de967ff..fa02359adb5 100644 --- a/mozilla/modules/libpref/src/init/all.js +++ b/mozilla/modules/libpref/src/init/all.js @@ -83,6 +83,7 @@ pref("browser.toolbars.showbutton.search", true); pref("accessibility.browsewithcaret", false); pref("accessibility.usetexttospeech", ""); pref("accessibility.usebrailledisplay", ""); +pref("accessibility.accesskeycausesactivation", true); // Dialog modality issues pref("browser.prefWindowModal", true);