Fix for PDT+ bug #25280. r=saari

git-svn-id: svn://10.0.0.236/trunk@60172 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
hyatt%netscape.com
2000-02-09 01:33:22 +00:00
parent 93117561a9
commit 5e6e9e2992
2 changed files with 68 additions and 2 deletions

View File

@@ -180,7 +180,8 @@ PRBool
nsXBLEventHandler::KeyEventMatched(nsIDOMKeyEvent* aKeyEvent)
{
nsAutoString trueString = "true";
nsAutoString falseString = "false";
// Get the keycode and charcode of the key event.
PRUint32 keyCode, charCode;
aKeyEvent->GetKeyCode(&keyCode);
@@ -224,6 +225,18 @@ nsXBLEventHandler::KeyEventMatched(nsIDOMKeyEvent* aKeyEvent)
if (!isModifierPresent)
return PR_FALSE;
}
else if (modifier == falseString) {
#ifdef XP_MAC
aKeyEvent->GetMetaKey(&isModifierPresent);
#elif XP_UNIX
aKeyEvent->GetAltKey(&isModifierPresent);
#else
aKeyEvent->GetCtrlKey(&isModifierPresent);
#endif
if (isModifierPresent)
return PR_FALSE;
}
// Check for shift.
mHandlerElement->GetAttribute(kNameSpaceID_None, kShiftAtom, modifier);
@@ -232,6 +245,11 @@ nsXBLEventHandler::KeyEventMatched(nsIDOMKeyEvent* aKeyEvent)
if (!isModifierPresent)
return PR_FALSE;
}
else if (modifier == falseString) {
aKeyEvent->GetShiftKey(&isModifierPresent);
if (isModifierPresent)
return PR_FALSE;
}
// Check for ctrl.
mHandlerElement->GetAttribute(kNameSpaceID_None, kControlAtom, modifier);
@@ -240,6 +258,11 @@ nsXBLEventHandler::KeyEventMatched(nsIDOMKeyEvent* aKeyEvent)
if (!isModifierPresent)
return PR_FALSE;
}
else if (modifier == falseString) {
aKeyEvent->GetCtrlKey(&isModifierPresent);
if (isModifierPresent)
return PR_FALSE;
}
// Check for meta.
mHandlerElement->GetAttribute(kNameSpaceID_None, kMetaAtom, modifier);
@@ -248,6 +271,11 @@ nsXBLEventHandler::KeyEventMatched(nsIDOMKeyEvent* aKeyEvent)
if (!isModifierPresent)
return PR_FALSE;
}
else if (modifier == falseString) {
aKeyEvent->GetMetaKey(&isModifierPresent);
if (isModifierPresent)
return PR_FALSE;
}
// Check for alt.
mHandlerElement->GetAttribute(kNameSpaceID_None, kAltAtom, modifier);
@@ -256,6 +284,11 @@ nsXBLEventHandler::KeyEventMatched(nsIDOMKeyEvent* aKeyEvent)
if (!isModifierPresent)
return PR_FALSE;
}
else if (modifier == falseString) {
aKeyEvent->GetAltKey(&isModifierPresent);
if (isModifierPresent)
return PR_FALSE;
}
return PR_TRUE;
}

View File

@@ -180,7 +180,8 @@ PRBool
nsXBLEventHandler::KeyEventMatched(nsIDOMKeyEvent* aKeyEvent)
{
nsAutoString trueString = "true";
nsAutoString falseString = "false";
// Get the keycode and charcode of the key event.
PRUint32 keyCode, charCode;
aKeyEvent->GetKeyCode(&keyCode);
@@ -224,6 +225,18 @@ nsXBLEventHandler::KeyEventMatched(nsIDOMKeyEvent* aKeyEvent)
if (!isModifierPresent)
return PR_FALSE;
}
else if (modifier == falseString) {
#ifdef XP_MAC
aKeyEvent->GetMetaKey(&isModifierPresent);
#elif XP_UNIX
aKeyEvent->GetAltKey(&isModifierPresent);
#else
aKeyEvent->GetCtrlKey(&isModifierPresent);
#endif
if (isModifierPresent)
return PR_FALSE;
}
// Check for shift.
mHandlerElement->GetAttribute(kNameSpaceID_None, kShiftAtom, modifier);
@@ -232,6 +245,11 @@ nsXBLEventHandler::KeyEventMatched(nsIDOMKeyEvent* aKeyEvent)
if (!isModifierPresent)
return PR_FALSE;
}
else if (modifier == falseString) {
aKeyEvent->GetShiftKey(&isModifierPresent);
if (isModifierPresent)
return PR_FALSE;
}
// Check for ctrl.
mHandlerElement->GetAttribute(kNameSpaceID_None, kControlAtom, modifier);
@@ -240,6 +258,11 @@ nsXBLEventHandler::KeyEventMatched(nsIDOMKeyEvent* aKeyEvent)
if (!isModifierPresent)
return PR_FALSE;
}
else if (modifier == falseString) {
aKeyEvent->GetCtrlKey(&isModifierPresent);
if (isModifierPresent)
return PR_FALSE;
}
// Check for meta.
mHandlerElement->GetAttribute(kNameSpaceID_None, kMetaAtom, modifier);
@@ -248,6 +271,11 @@ nsXBLEventHandler::KeyEventMatched(nsIDOMKeyEvent* aKeyEvent)
if (!isModifierPresent)
return PR_FALSE;
}
else if (modifier == falseString) {
aKeyEvent->GetMetaKey(&isModifierPresent);
if (isModifierPresent)
return PR_FALSE;
}
// Check for alt.
mHandlerElement->GetAttribute(kNameSpaceID_None, kAltAtom, modifier);
@@ -256,6 +284,11 @@ nsXBLEventHandler::KeyEventMatched(nsIDOMKeyEvent* aKeyEvent)
if (!isModifierPresent)
return PR_FALSE;
}
else if (modifier == falseString) {
aKeyEvent->GetAltKey(&isModifierPresent);
if (isModifierPresent)
return PR_FALSE;
}
return PR_TRUE;
}