зеркало из https://github.com/mozilla/pjs.git
Relanding Bug 298894 - [Mac] Make the enter key only (and always) fire the default button. r=mconnor/jhpedemonte, sr=neil, a=bsmedberg.
This commit is contained in:
Родитель
79aa419678
Коммит
2b3765f0e1
|
@ -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);
|
||||
*aEventStatus = nsEventStatus_eConsumeNoDefault;
|
||||
}
|
||||
}
|
||||
}
|
||||
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>
|
||||
|
|
Загрузка…
Ссылка в новой задаче