From 5e6e9e299259779b420a77075619739589a87c44 Mon Sep 17 00:00:00 2001 From: "hyatt%netscape.com" Date: Wed, 9 Feb 2000 01:33:22 +0000 Subject: [PATCH] Fix for PDT+ bug #25280. r=saari git-svn-id: svn://10.0.0.236/trunk@60172 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/content/xbl/src/nsXBLEventHandler.cpp | 35 ++++++++++++++++++- mozilla/layout/xbl/src/nsXBLEventHandler.cpp | 35 ++++++++++++++++++- 2 files changed, 68 insertions(+), 2 deletions(-) diff --git a/mozilla/content/xbl/src/nsXBLEventHandler.cpp b/mozilla/content/xbl/src/nsXBLEventHandler.cpp index 6e72931ba48..f83fed68206 100644 --- a/mozilla/content/xbl/src/nsXBLEventHandler.cpp +++ b/mozilla/content/xbl/src/nsXBLEventHandler.cpp @@ -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; } diff --git a/mozilla/layout/xbl/src/nsXBLEventHandler.cpp b/mozilla/layout/xbl/src/nsXBLEventHandler.cpp index 6e72931ba48..f83fed68206 100644 --- a/mozilla/layout/xbl/src/nsXBLEventHandler.cpp +++ b/mozilla/layout/xbl/src/nsXBLEventHandler.cpp @@ -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; }