Reviewed by Adam.
Use GetKeyState rather than GetAsyncKeyState since we're
calling in these cases in direct response to an event, and want the
key state associated with that event.
Pass triggering event to url selection method.
* bridge/mac/FrameMac.h: Add triggeringEvent parameter
* bridge/mac/FrameMac.mm:
(WebCore::FrameMac::urlSelected): Add triggeringEvent parameter
* bridge/win/FrameWin.cpp:
(WebCore::FrameWin::urlSelected): Add triggeringEvent parameter
* bridge/win/FrameWin.h: Add triggeringEvent parameter
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::defaultEventHandler): Pass triggering event to URL selection method
* page/Frame.cpp:
(WebCore::Frame::changeLocation): Add 0 as triggeringEvent
(WebCore::Frame::urlSelected): Pass through triggeringEvent
* page/Frame.h: Add triggeringEvent parameter to urlSelected methods
* platform/win/KeyEventWin.cpp:
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Use GetKeyState instead of GetAsyncKeyState
* platform/win/MouseEventWin.cpp: Use GetKeyState instead of GetAsyncKeyState
(WebCore::PlatformMouseEvent::PlatformMouseEvent):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@17154
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2006-10-19 Steve Falkenburg <sfalken@apple.com>
+
+ Reviewed by Adam.
+
+ Use GetKeyState rather than GetAsyncKeyState since we're
+ calling in these cases in direct response to an event, and want the
+ key state associated with that event.
+
+ Pass triggering event to url selection method.
+
+ * bridge/mac/FrameMac.h: Add triggeringEvent parameter
+ * bridge/mac/FrameMac.mm:
+ (WebCore::FrameMac::urlSelected): Add triggeringEvent parameter
+ * bridge/win/FrameWin.cpp:
+ (WebCore::FrameWin::urlSelected): Add triggeringEvent parameter
+ * bridge/win/FrameWin.h: Add triggeringEvent parameter
+ * html/HTMLAnchorElement.cpp:
+ (WebCore::HTMLAnchorElement::defaultEventHandler): Pass triggering event to URL selection method
+ * page/Frame.cpp:
+ (WebCore::Frame::changeLocation): Add 0 as triggeringEvent
+ (WebCore::Frame::urlSelected): Pass through triggeringEvent
+ * page/Frame.h: Add triggeringEvent parameter to urlSelected methods
+ * platform/win/KeyEventWin.cpp:
+ (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Use GetKeyState instead of GetAsyncKeyState
+ * platform/win/MouseEventWin.cpp: Use GetKeyState instead of GetAsyncKeyState
+ (WebCore::PlatformMouseEvent::PlatformMouseEvent):
+
2006-10-19 David Hyatt <hyatt@apple.com>
Correct typos from changing "flush" to "prune" using automated search/replace.
virtual void submitForm(const FrameLoadRequest&);
virtual void openURLRequest(const FrameLoadRequest&);
- virtual void urlSelected(const FrameLoadRequest&);
+ virtual void urlSelected(const FrameLoadRequest&, const Event* triggeringEvent);
virtual ObjectContentType objectContentType(const KURL& url, const String& mimeType);
virtual Plugin* createPlugin(Element* element, const KURL& url, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType);
}
-void FrameMac::urlSelected(const FrameLoadRequest& request)
+void FrameMac::urlSelected(const FrameLoadRequest& request, const Event* /*triggeringEvent*/)
{
BEGIN_BLOCK_OBJC_EXCEPTIONS;
clearRecordedFormValues();
}
-void FrameWin::urlSelected(const FrameLoadRequest& request)
+void FrameWin::urlSelected(const FrameLoadRequest& request, const Event* /*triggeringEvent*/)
{
if (m_client)
m_client->openURL(request.m_request.url().url(), request.lockHistory());
virtual bool openURL(const KURL&);
virtual void openURLRequest(const FrameLoadRequest&);
virtual void submitForm(const FrameLoadRequest&);
- virtual void urlSelected(const FrameLoadRequest&);
+ virtual void urlSelected(const FrameLoadRequest&, const Event* triggeringEvent);
virtual void setTitle(const String&);
virtual void setStatusBarText(const String&);
}
if (!evt->defaultPrevented() && document()->frame())
- document()->frame()->urlSelected(url, utarget);
+ document()->frame()->urlSelected(url, utarget, evt);
evt->setDefaultHandled();
} else if (m_isLink && isContentEditable()) {
ResourceRequestCachePolicy policy = (d->m_cachePolicy == CachePolicyReload) || (d->m_cachePolicy == CachePolicyRefresh) ? ReloadIgnoringCacheData : UseProtocolCachePolicy;
ResourceRequest request(completeURL(URL), referrer, policy);
- urlSelected(request, "_self", lockHistory);
+ urlSelected(request, "_self", 0, lockHistory);
}
void Frame::redirectionTimerFired(Timer<Frame>*)
dragCaretController->paintCaret(p, rect);
}
-void Frame::urlSelected(const DeprecatedString& url, const String& target)
+void Frame::urlSelected(const DeprecatedString& url, const String& target, const Event* triggeringEvent)
{
- urlSelected(ResourceRequest(completeURL(url)), target);
+ urlSelected(ResourceRequest(completeURL(url)), target, triggeringEvent);
}
-void Frame::urlSelected(const ResourceRequest& request, const String& _target, bool lockHistory)
+void Frame::urlSelected(const ResourceRequest& request, const String& _target, const Event* triggeringEvent, bool lockHistory)
{
String target = _target;
if (target.isEmpty() && d->m_doc)
if (frameRequest.m_request.httpReferrer().isEmpty())
frameRequest.m_request.setHTTPReferrer(d->m_referrer);
- urlSelected(frameRequest);
+ urlSelected(frameRequest, triggeringEvent);
}
bool Frame::requestFrame(Element* ownerElement, const String& urlParam, const AtomicString& frameName)
void selectClosestWordFromMouseEvent(const PlatformMouseEvent&, Node* innerNode);
- virtual void urlSelected(const DeprecatedString& url, const String& target);
- virtual void urlSelected(const ResourceRequest&, const String& target, bool lockHistory = false);
+ virtual void urlSelected(const DeprecatedString& url, const String& target, const Event* triggeringEvent);
+ virtual void urlSelected(const ResourceRequest&, const String& target, const Event* triggeringEvent, bool lockHistory = false);
// Methods with platform-specific overrides (and no base class implementation).
virtual void setTitle(const String&) = 0;
virtual bool canGoBackOrForward(int distance) const = 0;
virtual void openURLRequest(const FrameLoadRequest&) = 0;
virtual void submitForm(const FrameLoadRequest&) = 0;
- virtual void urlSelected(const FrameLoadRequest&) = 0;
+ virtual void urlSelected(const FrameLoadRequest&, const Event* triggeringEvent) = 0;
virtual bool lastEventIsMouseUp() const = 0;
virtual String overrideMediaType() const = 0;
virtual void redirectDataToPlugin(Widget* pluginWidget) { }
, m_autoRepeat(lParam & REPEAT_COUNT_MASK)
, m_WindowsKeyCode(wParam)
, m_isKeypad(false) // FIXME
- , m_shiftKey(GetAsyncKeyState(VK_SHIFT) & HIGH_BIT_MASK_SHORT)
- , m_ctrlKey(GetAsyncKeyState(VK_CONTROL) & HIGH_BIT_MASK_SHORT)
+ , m_shiftKey(GetKeyState(VK_SHIFT) & HIGH_BIT_MASK_SHORT)
+ , m_ctrlKey(GetKeyState(VK_CONTROL) & HIGH_BIT_MASK_SHORT)
, m_altKey(lParam & ALT_KEY_DOWN_MASK)
, m_metaKey(lParam & ALT_KEY_DOWN_MASK) // FIXME: Is this right?
{
, m_globalPosition(globalPositionForEvent(hWnd, lParam))
, m_shiftKey(wParam & MK_SHIFT)
, m_ctrlKey(wParam & MK_CONTROL)
- , m_altKey(GetAsyncKeyState(VK_MENU) & HIGH_BIT_MASK_SHORT)
+ , m_altKey(GetKeyState(VK_MENU) & HIGH_BIT_MASK_SHORT)
, m_metaKey(m_altKey) // FIXME: We'll have to test other browsers
{
switch (message) {