- Revision
- 241109
- Author
- dba...@webkit.org
- Date
- 2019-02-06 16:23:21 -0800 (Wed, 06 Feb 2019)
Log Message
Move toNSEventModifierFlags() and toNSButtonNumber() to WebEventFactory.mm
https://bugs.webkit.org/show_bug.cgi?id=194321
Reviewed by Jer Noble.
Move some code to WebEventFactory so that it can be shared by both WKNavigationAction.mm
and UIDelegate.mm among other benefits.
* Shared/mac/WebEventFactory.h:
* Shared/mac/WebEventFactory.mm:
(WebKit::WebEventFactory::toNSEventModifierFlags):
(WebKit::WebEventFactory::toNSButtonNumber):
* UIProcess/API/Cocoa/WKNavigationAction.mm:
(-[WKNavigationAction modifierFlags]):
(-[WKNavigationAction buttonNumber]):
(toNSEventModifierFlags): Deleted.
(toNSButtonNumber): Deleted.
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::mouseDidMoveOverElement):
(WebKit::toNSEventModifierFlags): Deleted.
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (241108 => 241109)
--- trunk/Source/WebKit/ChangeLog 2019-02-07 00:03:02 UTC (rev 241108)
+++ trunk/Source/WebKit/ChangeLog 2019-02-07 00:23:21 UTC (rev 241109)
@@ -1,3 +1,26 @@
+2019-02-06 Daniel Bates <daba...@apple.com>
+
+ Move toNSEventModifierFlags() and toNSButtonNumber() to WebEventFactory.mm
+ https://bugs.webkit.org/show_bug.cgi?id=194321
+
+ Reviewed by Jer Noble.
+
+ Move some code to WebEventFactory so that it can be shared by both WKNavigationAction.mm
+ and UIDelegate.mm among other benefits.
+
+ * Shared/mac/WebEventFactory.h:
+ * Shared/mac/WebEventFactory.mm:
+ (WebKit::WebEventFactory::toNSEventModifierFlags):
+ (WebKit::WebEventFactory::toNSButtonNumber):
+ * UIProcess/API/Cocoa/WKNavigationAction.mm:
+ (-[WKNavigationAction modifierFlags]):
+ (-[WKNavigationAction buttonNumber]):
+ (toNSEventModifierFlags): Deleted.
+ (toNSButtonNumber): Deleted.
+ * UIProcess/Cocoa/UIDelegate.mm:
+ (WebKit::UIDelegate::UIClient::mouseDidMoveOverElement):
+ (WebKit::toNSEventModifierFlags): Deleted.
+
2019-02-06 Andy Estes <aes...@apple.com>
[Payment Request] It should be possible to require a phonetic name for shipping contacts
Modified: trunk/Source/WebKit/Shared/mac/WebEventFactory.h (241108 => 241109)
--- trunk/Source/WebKit/Shared/mac/WebEventFactory.h 2019-02-07 00:03:02 UTC (rev 241108)
+++ trunk/Source/WebKit/Shared/mac/WebEventFactory.h 2019-02-07 00:23:21 UTC (rev 241109)
@@ -23,12 +23,15 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef WebEventFactory_h
-#define WebEventFactory_h
+#pragma once
#import "WebEvent.h"
#if USE(APPKIT)
+#if defined(__OBJC__)
+#include <AppKit/AppKit.h>
+#endif
+
namespace WebCore {
class PlatformMouseEvent;
}
@@ -46,9 +49,12 @@
static WebWheelEvent createWebWheelEvent(NSEvent *, NSView *windowView);
static WebKeyboardEvent createWebKeyboardEvent(NSEvent *, bool handledByInputMethod, bool replacesSoftSpace, const Vector<WebCore::KeypressCommand>&);
static bool shouldBeHandledAsContextClick(const WebCore::PlatformMouseEvent&);
+
+#if defined(__OBJC__)
+ static NSEventModifierFlags toNSEventModifierFlags(OptionSet<WebKit::WebEvent::Modifier>);
+ static NSInteger toNSButtonNumber(WebKit::WebMouseEvent::Button);
+#endif
#endif // USE(APPKIT)
};
} // namespace WebKit
-
-#endif // WebEventFactory_h
Modified: trunk/Source/WebKit/Shared/mac/WebEventFactory.mm (241108 => 241109)
--- trunk/Source/WebKit/Shared/mac/WebEventFactory.mm 2019-02-07 00:03:02 UTC (rev 241108)
+++ trunk/Source/WebKit/Shared/mac/WebEventFactory.mm 2019-02-07 00:23:21 UTC (rev 241109)
@@ -462,6 +462,38 @@
return WebKeyboardEvent(type, text, unmodifiedText, key, code, keyIdentifier, windowsVirtualKeyCode, nativeVirtualKeyCode, macCharCode, handledByInputMethod, commands, autoRepeat, isKeypad, isSystemKey, modifiers, timestamp);
}
+NSEventModifierFlags WebEventFactory::toNSEventModifierFlags(OptionSet<WebKit::WebEvent::Modifier> modifiers)
+{
+ NSEventModifierFlags modifierFlags = 0;
+ if (modifiers.contains(WebKit::WebEvent::Modifier::CapsLockKey))
+ modifierFlags |= NSEventModifierFlagCapsLock;
+ if (modifiers.contains(WebKit::WebEvent::Modifier::ShiftKey))
+ modifierFlags |= NSEventModifierFlagShift;
+ if (modifiers.contains(WebKit::WebEvent::Modifier::ControlKey))
+ modifierFlags |= NSEventModifierFlagControl;
+ if (modifiers.contains(WebKit::WebEvent::Modifier::AltKey))
+ modifierFlags |= NSEventModifierFlagOption;
+ if (modifiers.contains(WebKit::WebEvent::Modifier::MetaKey))
+ modifierFlags |= NSEventModifierFlagCommand;
+ return modifierFlags;
+}
+
+NSInteger WebEventFactory::toNSButtonNumber(WebKit::WebMouseEvent::Button mouseButton)
+{
+ switch (mouseButton) {
+ case WebKit::WebMouseEvent::NoButton:
+ return 0;
+ case WebKit::WebMouseEvent::LeftButton:
+ return 1 << 0;
+ case WebKit::WebMouseEvent::RightButton:
+ return 1 << 1;
+ case WebKit::WebMouseEvent::MiddleButton:
+ return 1 << 2;
+ }
+ ASSERT_NOT_REACHED();
+ return 0;
+}
+
} // namespace WebKit
#endif // USE(APPKIT)
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKNavigationAction.mm (241108 => 241109)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKNavigationAction.mm 2019-02-07 00:03:02 UTC (rev 241108)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKNavigationAction.mm 2019-02-07 00:23:21 UTC (rev 241109)
@@ -31,6 +31,7 @@
#import "NavigationActionData.h"
#import "WKFrameInfoInternal.h"
#import "WKNavigationInternal.h"
+#import "WebEventFactory.h"
#import "_WKUserInitiatedActionInternal.h"
#import <WebCore/FloatPoint.h>
#import <wtf/RetainPtr.h>
@@ -74,46 +75,6 @@
}
#endif
-#if PLATFORM(MAC)
-
-// FIXME: This really belongs in WebEventFactory.
-static NSEventModifierFlags toNSEventModifierFlags(OptionSet<WebKit::WebEvent::Modifier> modifiers)
-{
- NSEventModifierFlags modifierFlags = 0;
- if (modifiers.contains(WebKit::WebEvent::Modifier::CapsLockKey))
- modifierFlags |= NSEventModifierFlagCapsLock;
- if (modifiers.contains(WebKit::WebEvent::Modifier::ShiftKey))
- modifierFlags |= NSEventModifierFlagShift;
- if (modifiers.contains(WebKit::WebEvent::Modifier::ControlKey))
- modifierFlags |= NSEventModifierFlagControl;
- if (modifiers.contains(WebKit::WebEvent::Modifier::AltKey))
- modifierFlags |= NSEventModifierFlagOption;
- if (modifiers.contains(WebKit::WebEvent::Modifier::MetaKey))
- modifierFlags |= NSEventModifierFlagCommand;
- return modifierFlags;
-}
-
-static NSInteger toNSButtonNumber(WebKit::WebMouseEvent::Button mouseButton)
-{
- switch (mouseButton) {
- case WebKit::WebMouseEvent::NoButton:
- return 0;
-
- case WebKit::WebMouseEvent::LeftButton:
- return 1 << 0;
-
- case WebKit::WebMouseEvent::RightButton:
- return 1 << 1;
-
- case WebKit::WebMouseEvent::MiddleButton:
- return 1 << 2;
-
- default:
- return 0;
- }
-}
-#endif
-
- (void)dealloc
{
_navigationAction->~NavigationAction();
@@ -168,12 +129,12 @@
#if PLATFORM(MAC)
- (NSEventModifierFlags)modifierFlags
{
- return toNSEventModifierFlags(_navigationAction->modifiers());
+ return WebKit::WebEventFactory::toNSEventModifierFlags(_navigationAction->modifiers());
}
- (NSInteger)buttonNumber
{
- return toNSButtonNumber(_navigationAction->mouseButton());
+ return WebKit::WebEventFactory::toNSButtonNumber(_navigationAction->mouseButton());
}
#endif
Modified: trunk/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm (241108 => 241109)
--- trunk/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm 2019-02-07 00:03:02 UTC (rev 241108)
+++ trunk/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm 2019-02-07 00:23:21 UTC (rev 241109)
@@ -46,6 +46,7 @@
#import "WKWebViewConfigurationInternal.h"
#import "WKWebViewInternal.h"
#import "WKWindowFeaturesInternal.h"
+#import "WebEventFactory.h"
#import "WebOpenPanelResultListenerProxy.h"
#import "WebProcessProxy.h"
#import "_WKContextMenuElementInfo.h"
@@ -687,22 +688,6 @@
}).get()];
}
-static NSEventModifierFlags toNSEventModifierFlags(OptionSet<WebEvent::Modifier> modifiers)
-{
- NSEventModifierFlags flags = 0;
- if (modifiers.contains(WebEvent::Modifier::ShiftKey))
- flags |= NSEventModifierFlagShift;
- if (modifiers.contains(WebEvent::Modifier::ControlKey))
- flags |= NSEventModifierFlagControl;
- if (modifiers.contains(WebEvent::Modifier::AltKey))
- flags |= NSEventModifierFlagOption;
- if (modifiers.contains(WebEvent::Modifier::MetaKey))
- flags |= NSEventModifierFlagCommand;
- if (modifiers.contains(WebEvent::Modifier::CapsLockKey))
- flags |= NSEventModifierFlagCapsLock;
- return flags;
-}
-
void UIDelegate::UIClient::mouseDidMoveOverElement(WebPageProxy&, const WebHitTestResultData& data, OptionSet<WebEvent::Modifier> modifiers, API::Object* userInfo)
{
if (!m_uiDelegate.m_delegateMethods.webViewMouseDidMoveOverElementWithFlagsUserInfo)
@@ -713,7 +698,7 @@
return;
auto apiHitTestResult = API::HitTestResult::create(data);
- [(id <WKUIDelegatePrivate>)delegate _webView:m_uiDelegate.m_webView mouseDidMoveOverElement:wrapper(apiHitTestResult.get()) withFlags:toNSEventModifierFlags(modifiers) userInfo:userInfo ? static_cast<id <NSSecureCoding>>(userInfo->wrapper()) : nil];
+ [(id <WKUIDelegatePrivate>)delegate _webView:m_uiDelegate.m_webView mouseDidMoveOverElement:wrapper(apiHitTestResult.get()) withFlags:WebEventFactory::toNSEventModifierFlags(modifiers) userInfo:userInfo ? static_cast<id <NSSecureCoding>>(userInfo->wrapper()) : nil];
}
static _WKAutoplayEventFlags toWKAutoplayEventFlags(OptionSet<WebCore::AutoplayEventFlags> flags)