Title: [241109] trunk/Source/WebKit
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)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to