Bug 298894 - [Mac] Make the enter key only (and always) fire the default button. r=mconnor/jhpedemonte, sr=neil, a=bsmedberg.
git-svn-id: svn://10.0.0.236/trunk@175218 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -112,6 +112,8 @@ nsButtonBoxFrame::HandleEvent(nsPresContext* aPresContext,
|
||||
}
|
||||
break;
|
||||
|
||||
// On mac, Return fires the defualt button, not the focused one.
|
||||
#ifndef XP_MACOSX
|
||||
case NS_KEY_PRESS:
|
||||
if (NS_KEY_EVENT == aEvent->eventStructType) {
|
||||
nsKeyEvent* keyEvent = (nsKeyEvent*)aEvent;
|
||||
@@ -119,10 +121,12 @@ nsButtonBoxFrame::HandleEvent(nsPresContext* aPresContext,
|
||||
nsCOMPtr<nsIDOMXULButtonElement> buttonEl(do_QueryInterface(mContent));
|
||||
if (buttonEl) {
|
||||
MouseClicked(aPresContext, aEvent);
|
||||
aEvent->PreventDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
case NS_KEY_UP:
|
||||
if (NS_KEY_EVENT == aEvent->eventStructType) {
|
||||
|
||||
@@ -170,9 +170,6 @@
|
||||
this.fireAccessKeyButton(buttonBox, charPressedLower);
|
||||
]]>
|
||||
</handler>
|
||||
|
||||
<handler event="keypress" keycode="VK_RETURN" preventdefault="true"/>
|
||||
<handler event="keypress" keycode="VK_ENTER" preventdefault="true"/>
|
||||
</handlers>
|
||||
</binding>
|
||||
|
||||
|
||||
@@ -47,13 +47,6 @@
|
||||
if (!document.documentElement.cancelDialog())
|
||||
event.preventDefault();
|
||||
})</field>
|
||||
<field name="enterDefaultAlways">
|
||||
#ifdef XP_MACOSX
|
||||
true
|
||||
#else
|
||||
false
|
||||
#endif
|
||||
</field>
|
||||
|
||||
<property name="buttons"
|
||||
onget="return this.getAttribute('buttons');"
|
||||
@@ -401,7 +394,7 @@
|
||||
<parameter name="evt"/>
|
||||
<body>
|
||||
<![CDATA[
|
||||
if (!this.enterDefaultAlways && evt.getPreventDefault())
|
||||
if (evt.getPreventDefault())
|
||||
return;
|
||||
|
||||
var btn = this.getButton(this.defaultButton);
|
||||
|
||||
@@ -182,9 +182,6 @@
|
||||
this.fireAccessKeyButton(buttonBox, charPressedLower);
|
||||
]]>
|
||||
</handler>
|
||||
|
||||
<handler event="keypress" keycode="VK_RETURN" preventdefault="true"/>
|
||||
<handler event="keypress" keycode="VK_ENTER" preventdefault="true"/>
|
||||
</handlers>
|
||||
</binding>
|
||||
|
||||
|
||||
@@ -35,7 +35,6 @@
|
||||
if (!document.documentElement.cancelDialog())
|
||||
event.preventDefault();
|
||||
})</field>
|
||||
<field name="enterDefaultAlways">false</field>
|
||||
|
||||
<property name="buttons"
|
||||
onget="return this.getAttribute('buttons');"
|
||||
@@ -287,7 +286,7 @@
|
||||
<parameter name="evt"/>
|
||||
<body>
|
||||
<![CDATA[
|
||||
if (!this.enterDefaultAlways && evt.getPreventDefault())
|
||||
if (evt.getPreventDefault())
|
||||
return;
|
||||
|
||||
// only accept dialog if accept button is the default
|
||||
|
||||
@@ -23,10 +23,6 @@
|
||||
</xul:hbox>
|
||||
</content>
|
||||
|
||||
<implementation>
|
||||
<field name="enterDefaultAlways">true</field>
|
||||
</implementation>
|
||||
|
||||
<handlers>
|
||||
<handler event="keypress" key="." modifiers="meta" phase="capturing" action="this.cancelDialog();"/>
|
||||
</handlers>
|
||||
|
||||
Reference in New Issue
Block a user