From 13137487086ff1275c8b3e8fb21955caa8be18d7 Mon Sep 17 00:00:00 2001 From: "pinkerton%netscape.com" Date: Fri, 9 Jun 2000 02:56:21 +0000 Subject: [PATCH] if cmd-key (meta) is down, open link in a new window r/a=waterson. git-svn-id: svn://10.0.0.236/trunk@71857 18797224-902f-48f8-a5cc-f745e15eee43 --- .../html/content/src/nsGenericHTMLElement.cpp | 12 ++++++++++-- .../layout/html/content/src/nsGenericHTMLElement.cpp | 12 ++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/mozilla/content/html/content/src/nsGenericHTMLElement.cpp b/mozilla/content/html/content/src/nsGenericHTMLElement.cpp index e1ef815b733..036fb8540f7 100644 --- a/mozilla/content/html/content/src/nsGenericHTMLElement.cpp +++ b/mozilla/content/html/content/src/nsGenericHTMLElement.cpp @@ -1124,6 +1124,9 @@ nsGenericHTMLElement::HandleDOMEventForAnchors(nsIContent* aOuter, { if (nsEventStatus_eConsumeNoDefault != *aEventStatus) { + // both mouse and key events are input events, so this is ok. + nsInputEvent* inputEvent = NS_STATIC_CAST(nsInputEvent*, aEvent); + nsKeyEvent * keyEvent; if (aEvent->eventStructType == NS_KEY_EVENT) { //Handle key commands from keys with char representation here, not on KeyDown @@ -1139,8 +1142,13 @@ nsGenericHTMLElement::HandleDOMEventForAnchors(nsIContent* aOuter, if (target.Length() == 0) { GetBaseTarget(target); } - ret = TriggerLink(aPresContext, eLinkVerb_Replace, - baseURL, href, target, PR_TRUE); + // if meta (cmd on mac) is down, open in new window. + if ( inputEvent->isMeta ) + ret = TriggerLink(aPresContext, eLinkVerb_New, + baseURL, href, target, PR_TRUE); + else + ret = TriggerLink(aPresContext, eLinkVerb_Replace, + baseURL, href, target, PR_TRUE); NS_IF_RELEASE(baseURL); *aEventStatus = nsEventStatus_eConsumeDoDefault; } diff --git a/mozilla/layout/html/content/src/nsGenericHTMLElement.cpp b/mozilla/layout/html/content/src/nsGenericHTMLElement.cpp index e1ef815b733..036fb8540f7 100644 --- a/mozilla/layout/html/content/src/nsGenericHTMLElement.cpp +++ b/mozilla/layout/html/content/src/nsGenericHTMLElement.cpp @@ -1124,6 +1124,9 @@ nsGenericHTMLElement::HandleDOMEventForAnchors(nsIContent* aOuter, { if (nsEventStatus_eConsumeNoDefault != *aEventStatus) { + // both mouse and key events are input events, so this is ok. + nsInputEvent* inputEvent = NS_STATIC_CAST(nsInputEvent*, aEvent); + nsKeyEvent * keyEvent; if (aEvent->eventStructType == NS_KEY_EVENT) { //Handle key commands from keys with char representation here, not on KeyDown @@ -1139,8 +1142,13 @@ nsGenericHTMLElement::HandleDOMEventForAnchors(nsIContent* aOuter, if (target.Length() == 0) { GetBaseTarget(target); } - ret = TriggerLink(aPresContext, eLinkVerb_Replace, - baseURL, href, target, PR_TRUE); + // if meta (cmd on mac) is down, open in new window. + if ( inputEvent->isMeta ) + ret = TriggerLink(aPresContext, eLinkVerb_New, + baseURL, href, target, PR_TRUE); + else + ret = TriggerLink(aPresContext, eLinkVerb_Replace, + baseURL, href, target, PR_TRUE); NS_IF_RELEASE(baseURL); *aEventStatus = nsEventStatus_eConsumeDoDefault; }