From 1b09ed7f43898f646f946da74b1710808ddaf4c0 Mon Sep 17 00:00:00 2001 From: "hyatt%netscape.com" Date: Thu, 27 Jan 2000 09:43:19 +0000 Subject: [PATCH] Making the XUL key listener a bubbler. Removing its capability to handle textareas and inputs. --- content/xul/document/src/nsXULDocument.cpp | 6 ++-- rdf/content/src/nsXULDocument.cpp | 6 ++-- rdf/content/src/nsXULKeyListener.cpp | 35 +++++----------------- 3 files changed, 14 insertions(+), 33 deletions(-) diff --git a/content/xul/document/src/nsXULDocument.cpp b/content/xul/document/src/nsXULDocument.cpp index 5abba308e73e..1d64e16a42af 100644 --- a/content/xul/document/src/nsXULDocument.cpp +++ b/content/xul/document/src/nsXULDocument.cpp @@ -5037,9 +5037,9 @@ nsXULDocument::CreateElement(nsXULPrototypeElement* aPrototype, nsIContent** aRe nsCOMPtr domElement = do_QueryInterface(result); keyListener->Init(domElement, this); - AddEventListener("keypress", domEventListener, PR_TRUE); - AddEventListener("keydown", domEventListener, PR_TRUE); - AddEventListener("keyup", domEventListener, PR_TRUE); + AddEventListener("keypress", domEventListener, PR_FALSE); + AddEventListener("keydown", domEventListener, PR_FALSE); + AddEventListener("keyup", domEventListener, PR_FALSE); } } } diff --git a/rdf/content/src/nsXULDocument.cpp b/rdf/content/src/nsXULDocument.cpp index 5abba308e73e..1d64e16a42af 100644 --- a/rdf/content/src/nsXULDocument.cpp +++ b/rdf/content/src/nsXULDocument.cpp @@ -5037,9 +5037,9 @@ nsXULDocument::CreateElement(nsXULPrototypeElement* aPrototype, nsIContent** aRe nsCOMPtr domElement = do_QueryInterface(result); keyListener->Init(domElement, this); - AddEventListener("keypress", domEventListener, PR_TRUE); - AddEventListener("keydown", domEventListener, PR_TRUE); - AddEventListener("keyup", domEventListener, PR_TRUE); + AddEventListener("keypress", domEventListener, PR_FALSE); + AddEventListener("keydown", domEventListener, PR_FALSE); + AddEventListener("keyup", domEventListener, PR_FALSE); } } } diff --git a/rdf/content/src/nsXULKeyListener.cpp b/rdf/content/src/nsXULKeyListener.cpp index 93006589ec17..6a841473796b 100644 --- a/rdf/content/src/nsXULKeyListener.cpp +++ b/rdf/content/src/nsXULKeyListener.cpp @@ -414,10 +414,12 @@ nsXULKeyListenerImpl::Init( // Set the default for the xul key modifier #ifdef XP_MAC mXULKeyModifier = xulKeyMeta; -#elif XP_PC +#else + // Based off current UI newsgroup discussions, it looks like CTRL is + // the preferred default for UNIX. This will of course be configurable + // so that ALT can be chosen by those who favor it, but CTRL will be + // the default. mXULKeyModifier = xulKeyControl; -#else - mXULKeyModifier = xulKeyAlt; #endif return NS_OK; } @@ -500,28 +502,7 @@ nsresult nsXULKeyListenerImpl::DoKey(nsIDOMEvent* aKeyEvent, eEventType aEventTy piWindow = do_QueryInterface(domWindow); nsCAutoString keyFile, platformKeyFile; - if (focusedElement) { - // See if it's a textarea or input field. - // XXX Check to see if the "key-bindings" CSS property points us to a file. - // Hopefully we can get Pierre to add this. ;) - - nsAutoString tagName; - focusedElement->GetTagName(tagName); - if (tagName.EqualsIgnoreCase("input")) { - nsAutoString type; - focusedElement->GetAttribute(nsAutoString("type"), type); - if (type == "" || type.EqualsIgnoreCase("text") || - type.EqualsIgnoreCase("password")) { - keyFile = "chrome://global/content/inputBindings.xul"; - platformKeyFile = "chrome://global/content/platformInputBindings.xul"; - } - } - else if (tagName.EqualsIgnoreCase("textarea")) { - keyFile = "chrome://global/content/textAreaBindings.xul"; - platformKeyFile = "chrome://global/content/platformTextAreaBindings.xul"; - } - } - + nsCOMPtr document; GetKeyBindingDocument(platformKeyFile, getter_AddRefs(document)); @@ -1575,8 +1556,8 @@ nsXULKeyListenerImpl::HandleEventUsingKeyset(nsIDOMElement* aKeysetElement, nsID masterContext->BindCompiledEventHandler(scriptObject, eventName, nsnull); - aKeyEvent->PreventBubble(); - aKeyEvent->PreventCapture(); + //aKeyEvent->PreventBubble(); + //aKeyEvent->PreventCapture(); return NS_OK; } }