Diff
Modified: trunk/Source/WebCore/ChangeLog (90086 => 90087)
--- trunk/Source/WebCore/ChangeLog 2011-06-30 04:16:18 UTC (rev 90086)
+++ trunk/Source/WebCore/ChangeLog 2011-06-30 05:12:28 UTC (rev 90087)
@@ -1,3 +1,24 @@
+2011-06-29 Darin Adler <[email protected]>
+
+ Reviewed by Dan Bernstein.
+
+ [Mac] Use system cursors instead of custom bitmaps where possible
+ https://bugs.webkit.org/show_bug.cgi?id=63679
+
+ * Resources/crossHairCursor.png: Removed.
+ * Resources/notAllowedCursor.png: Removed.
+ * WebCore.exp.in: Added wkCursor.
+ * WebCore/WebCore.gyp/WebCore.gyp: Removed the two now-unused PNG files.
+ * WebCore.xcodeproj/project.pbxproj: Ditto.
+
+ * platform/mac/CursorMac.mm:
+ (WebCore::Cursor::ensurePlatformCursor): Use NSCursor API for Cross, Hand,
+ VerticalText, ContextMenu, Copy, and NotAllowed. Use wkCursor for Move,
+ Alias, Progress, and the resize and panning cursors.
+
+ * platform/mac/WebCoreSystemInterface.h: Added wkCursor.
+ * platform/mac/WebCoreSystemInterface.mm: Ditto.
+
2011-06-29 Keishi Hattori <[email protected]>
Reviewed by Adam Barth.
Deleted: trunk/Source/WebCore/Resources/crossHairCursor.png
(Binary files differ)
Deleted: trunk/Source/WebCore/Resources/notAllowedCursor.png
(Binary files differ)
Modified: trunk/Source/WebCore/WebCore.exp.in (90086 => 90087)
--- trunk/Source/WebCore/WebCore.exp.in 2011-06-30 04:16:18 UTC (rev 90086)
+++ trunk/Source/WebCore/WebCore.exp.in 2011-06-30 05:12:28 UTC (rev 90087)
@@ -1484,6 +1484,7 @@
_wkWillEndLiveResize
_wkWillStartLiveResize
_wkAVAssetResolvedURL
+_wkCursor
#else
_wkGetNSEventMomentumPhase
#endif
Modified: trunk/Source/WebCore/WebCore.gyp/WebCore.gyp (90086 => 90087)
--- trunk/Source/WebCore/WebCore.gyp/WebCore.gyp 2011-06-30 04:16:18 UTC (rev 90086)
+++ trunk/Source/WebCore/WebCore.gyp/WebCore.gyp 2011-06-30 05:12:28 UTC (rev 90087)
@@ -1635,7 +1635,6 @@
'../Resources/cellCursor.png',
'../Resources/contextMenuCursor.png',
'../Resources/copyCursor.png',
- '../Resources/crossHairCursor.png',
'../Resources/eastResizeCursor.png',
'../Resources/eastWestResizeCursor.png',
'../Resources/helpCursor.png',
@@ -1650,7 +1649,6 @@
'../Resources/northSouthResizeCursor.png',
'../Resources/northWestResizeCursor.png',
'../Resources/northWestSouthEastResizeCursor.png',
- '../Resources/notAllowedCursor.png',
'../Resources/progressCursor.png',
'../Resources/southEastResizeCursor.png',
'../Resources/southResizeCursor.png',
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (90086 => 90087)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2011-06-30 04:16:18 UTC (rev 90086)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2011-06-30 05:12:28 UTC (rev 90087)
@@ -1035,8 +1035,6 @@
45099C411370A7800058D513 /* IconURL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 45099C401370A7800058D513 /* IconURL.cpp */; };
45BAC2B01360BBAB005DA258 /* IconURL.h in Headers */ = {isa = PBXBuildFile; fileRef = 45BAC2AF1360BBAB005DA258 /* IconURL.h */; settings = {ATTRIBUTES = (Private, ); }; };
4614A1FE0B23A8D600446E1C /* copyCursor.png in Resources */ = {isa = PBXBuildFile; fileRef = 4614A1FD0B23A8D600446E1C /* copyCursor.png */; };
- 464EA2730B8A350B00A8E6E3 /* crossHairCursor.png in Resources */ = {isa = PBXBuildFile; fileRef = 464EA2710B8A350B00A8E6E3 /* crossHairCursor.png */; };
- 464EA2740B8A350B00A8E6E3 /* notAllowedCursor.png in Resources */ = {isa = PBXBuildFile; fileRef = 464EA2720B8A350B00A8E6E3 /* notAllowedCursor.png */; };
46700ED0127B96CB00F5D5D6 /* FileWriterSync.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 46700ECE127B96CB00F5D5D6 /* FileWriterSync.cpp */; };
46700ED1127B96CB00F5D5D6 /* FileWriterSync.h in Headers */ = {isa = PBXBuildFile; fileRef = 46700ECF127B96CB00F5D5D6 /* FileWriterSync.h */; };
4689F1AF1267BAE100E8D380 /* FileMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 4689F1AE1267BAE100E8D380 /* FileMetadata.h */; };
@@ -7531,8 +7529,6 @@
45099C401370A7800058D513 /* IconURL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IconURL.cpp; sourceTree = "<group>"; };
45BAC2AF1360BBAB005DA258 /* IconURL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IconURL.h; sourceTree = "<group>"; };
4614A1FD0B23A8D600446E1C /* copyCursor.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = copyCursor.png; sourceTree = "<group>"; };
- 464EA2710B8A350B00A8E6E3 /* crossHairCursor.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = crossHairCursor.png; sourceTree = "<group>"; };
- 464EA2720B8A350B00A8E6E3 /* notAllowedCursor.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = notAllowedCursor.png; sourceTree = "<group>"; };
46700ECE127B96CB00F5D5D6 /* FileWriterSync.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FileWriterSync.cpp; path = fileapi/FileWriterSync.cpp; sourceTree = "<group>"; };
46700ECF127B96CB00F5D5D6 /* FileWriterSync.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FileWriterSync.h; path = fileapi/FileWriterSync.h; sourceTree = "<group>"; };
4689F1AE1267BAE100E8D380 /* FileMetadata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FileMetadata.h; path = platform/FileMetadata.h; sourceTree = "<group>"; };
@@ -12932,7 +12928,6 @@
46D4F2460AF97E810035385A /* cellCursor.png */,
46D4F2470AF97E810035385A /* contextMenuCursor.png */,
4614A1FD0B23A8D600446E1C /* copyCursor.png */,
- 464EA2710B8A350B00A8E6E3 /* crossHairCursor.png */,
1C14E76A0AD8C81C00B6158B /* deleteButton.tiff */,
1C14E7690AD8C81C00B6158B /* deleteButtonPressed.tiff */,
85136C890AED665800F90A3D /* eastResizeCursor.png */,
@@ -12951,7 +12946,6 @@
85136C910AED665900F90A3D /* northSouthResizeCursor.png */,
85136C920AED665900F90A3D /* northWestResizeCursor.png */,
85136C930AED665900F90A3D /* northWestSouthEastResizeCursor.png */,
- 464EA2720B8A350B00A8E6E3 /* notAllowedCursor.png */,
46F9D5DC0B0D60170028EE36 /* progressCursor.png */,
85136C940AED665900F90A3D /* southEastResizeCursor.png */,
85136C950AED665900F90A3D /* southResizeCursor.png */,
@@ -23195,7 +23189,6 @@
46D4F2490AF97E810035385A /* cellCursor.png in Resources */,
46D4F24A0AF97E810035385A /* contextMenuCursor.png in Resources */,
4614A1FE0B23A8D600446E1C /* copyCursor.png in Resources */,
- 464EA2730B8A350B00A8E6E3 /* crossHairCursor.png in Resources */,
1C14E76C0AD8C81C00B6158B /* deleteButton.tiff in Resources */,
1C14E76B0AD8C81C00B6158B /* deleteButtonPressed.tiff in Resources */,
85136C990AED665900F90A3D /* eastResizeCursor.png in Resources */,
@@ -23215,7 +23208,6 @@
85136CA10AED665900F90A3D /* northSouthResizeCursor.png in Resources */,
85136CA20AED665900F90A3D /* northWestResizeCursor.png in Resources */,
85136CA30AED665900F90A3D /* northWestSouthEastResizeCursor.png in Resources */,
- 464EA2740B8A350B00A8E6E3 /* notAllowedCursor.png in Resources */,
46F9D5DF0B0D60170028EE36 /* progressCursor.png in Resources */,
85136CA40AED665900F90A3D /* southEastResizeCursor.png in Resources */,
85136CA50AED665900F90A3D /* southResizeCursor.png in Resources */,
Modified: trunk/Source/WebCore/platform/mac/CursorMac.mm (90086 => 90087)
--- trunk/Source/WebCore/platform/mac/CursorMac.mm 2011-06-30 04:16:18 UTC (rev 90086)
+++ trunk/Source/WebCore/platform/mac/CursorMac.mm 2011-06-30 05:12:28 UTC (rev 90087)
@@ -27,6 +27,7 @@
#import "Cursor.h"
#import "BlockExceptions.h"
+#import "WebCoreSystemInterface.h"
#import <wtf/StdLibExtras.h>
@interface WebCoreCursorBundle : NSObject { }
@@ -83,10 +84,16 @@
m_platformCursor = [NSCursor arrowCursor];
break;
case Cursor::Cross:
- m_platformCursor = leakNamedCursor("crossHairCursor", 11, 11);
+ m_platformCursor = [NSCursor crosshairCursor];
break;
case Cursor::Hand:
+#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+ m_platformCursor = [NSCursor pointingHandCursor];
+#else
+ // The pointingHandCursor from NSCursor does not have a shadow on
+ // older versions of Mac OS X, so use our own custom cursor.
m_platformCursor = leakNamedCursor("linkCursor", 6, 1);
+#endif
break;
case Cursor::IBeam:
m_platformCursor = [NSCursor IBeamCursor];
@@ -99,51 +106,103 @@
break;
case Cursor::Move:
case Cursor::MiddlePanning:
+#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+ m_platformCursor = wkCursor("Move");
+#else
m_platformCursor = leakNamedCursor("moveCursor", 7, 7);
+#endif
break;
case Cursor::EastResize:
case Cursor::EastPanning:
+#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+ m_platformCursor = wkCursor("ResizeEast");
+#else
m_platformCursor = leakNamedCursor("eastResizeCursor", 14, 7);
+#endif
break;
case Cursor::NorthResize:
case Cursor::NorthPanning:
+#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+ m_platformCursor = wkCursor("ResizeNorth");
+#else
m_platformCursor = leakNamedCursor("northResizeCursor", 7, 1);
+#endif
break;
case Cursor::NorthEastResize:
case Cursor::NorthEastPanning:
+#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+ m_platformCursor = wkCursor("ResizeNortheast");
+#else
m_platformCursor = leakNamedCursor("northEastResizeCursor", 14, 1);
+#endif
break;
case Cursor::NorthWestResize:
case Cursor::NorthWestPanning:
+#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+ m_platformCursor = wkCursor("ResizeNorthwest");
+#else
m_platformCursor = leakNamedCursor("northWestResizeCursor", 0, 0);
+#endif
break;
case Cursor::SouthResize:
case Cursor::SouthPanning:
+#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+ m_platformCursor = wkCursor("ResizeSouth");
+#else
m_platformCursor = leakNamedCursor("southResizeCursor", 7, 14);
+#endif
break;
case Cursor::SouthEastResize:
case Cursor::SouthEastPanning:
+#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+ m_platformCursor = wkCursor("ResizeSoutheast");
+#else
m_platformCursor = leakNamedCursor("southEastResizeCursor", 14, 14);
+#endif
break;
case Cursor::SouthWestResize:
case Cursor::SouthWestPanning:
+#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+ m_platformCursor = wkCursor("ResizeSouthwest");
+#else
m_platformCursor = leakNamedCursor("southWestResizeCursor", 1, 14);
+#endif
break;
case Cursor::WestResize:
+#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+ m_platformCursor = wkCursor("ResizeWest");
+#else
m_platformCursor = leakNamedCursor("westResizeCursor", 1, 7);
+#endif
break;
case Cursor::NorthSouthResize:
+#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+ m_platformCursor = wkCursor("ResizeNorthSouth");
+#else
m_platformCursor = leakNamedCursor("northSouthResizeCursor", 7, 7);
+#endif
break;
case Cursor::EastWestResize:
case Cursor::WestPanning:
+#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+ m_platformCursor = wkCursor("ResizeEastWest");
+#else
m_platformCursor = leakNamedCursor("eastWestResizeCursor", 7, 7);
+#endif
break;
case Cursor::NorthEastSouthWestResize:
+#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+ m_platformCursor = wkCursor("ResizeNortheastSouthwest");
+#else
m_platformCursor = leakNamedCursor("northEastSouthWestResizeCursor", 7, 7);
+#endif
break;
case Cursor::NorthWestSouthEastResize:
+#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+ m_platformCursor = wkCursor("ResizeNorthwestSoutheast");
+#else
m_platformCursor = leakNamedCursor("northWestSouthEastResizeCursor", 7, 7);
+#endif
break;
case Cursor::ColumnResize:
m_platformCursor = [NSCursor resizeLeftRightCursor];
@@ -152,31 +211,51 @@
m_platformCursor = [NSCursor resizeUpDownCursor];
break;
case Cursor::VerticalText:
+#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+ m_platformCursor = [NSCursor IBeamCursorForVerticalLayout];
+#else
m_platformCursor = leakNamedCursor("verticalTextCursor", 7, 7);
+#endif
break;
case Cursor::Cell:
m_platformCursor = leakNamedCursor("cellCursor", 7, 7);
break;
case Cursor::ContextMenu:
+#if !defined(BUILDING_ON_LEOPARD)
+ m_platformCursor = [NSCursor contextualMenuCursor];
+#else
m_platformCursor = leakNamedCursor("contextMenuCursor", 3, 2);
+#endif
break;
case Cursor::Alias:
+#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+ m_platformCursor = wkCursor("MakeAlias");
+#else
m_platformCursor = leakNamedCursor("aliasCursor", 11, 3);
+#endif
break;
case Cursor::Progress:
+#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+ m_platformCursor = wkCursor("BusyButClickable");
+#else
m_platformCursor = leakNamedCursor("progressCursor", 3, 2);
+#endif
break;
case Cursor::NoDrop:
m_platformCursor = leakNamedCursor("noDropCursor", 3, 1);
break;
case Cursor::Copy:
+#if !defined(BUILDING_ON_LEOPARD)
+ m_platformCursor = [NSCursor dragCopyCursor];
+#else
m_platformCursor = leakNamedCursor("copyCursor", 3, 2);
+#endif
break;
case Cursor::None:
m_platformCursor = leakNamedCursor("noneCursor", 7, 7);
break;
case Cursor::NotAllowed:
- m_platformCursor = leakNamedCursor("notAllowedCursor", 11, 11);
+ m_platformCursor = [NSCursor operationNotAllowedCursor];
break;
case Cursor::ZoomIn:
m_platformCursor = leakNamedCursor("zoomInCursor", 7, 7);
Modified: trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.h (90086 => 90087)
--- trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.h 2011-06-30 04:16:18 UTC (rev 90086)
+++ trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.h 2011-06-30 05:12:28 UTC (rev 90087)
@@ -72,6 +72,7 @@
@class NSArray;
@class NSButtonCell;
@class NSControl;
+@class NSCursor;
@class NSData;
@class NSDate;
@class NSEvent;
@@ -95,6 +96,7 @@
class NSArray;
class NSButtonCell;
class NSControl;
+class NSCursor;
class NSData;
class NSDate;
class NSEvent;
@@ -230,7 +232,9 @@
#endif
extern CTLineRef (*wkCreateCTLineWithUniCharProvider)(const UniChar* (*provide)(CFIndex stringIndex, CFIndex* charCount, CFDictionaryRef* attributes, void*), void (*dispose)(const UniChar* chars, void*), void*);
+
#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+
extern CTTypesetterRef (*wkCreateCTTypesetterWithUniCharProviderAndOptions)(const UniChar* (*provide)(CFIndex stringIndex, CFIndex* charCount, CFDictionaryRef* attributes, void*), void (*dispose)(const UniChar* chars, void*), void*, CFDictionaryRef options);
extern CGContextRef (*wkIOSurfaceContextCreate)(IOSurfaceRef surface, unsigned width, unsigned height, CGColorSpaceRef colorSpace);
@@ -289,6 +293,9 @@
extern CFStringRef (*wkCopyDefaultSearchProviderDisplayName)(void);
extern NSURL *(*wkAVAssetResolvedURL)(AVAsset*);
+
+extern NSCursor *(*wkCursor)(const char*);
+
#endif
extern void (*wkUnregisterUniqueIdForElement)(id element);
Modified: trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.mm (90086 => 90087)
--- trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.mm 2011-06-30 04:16:18 UTC (rev 90086)
+++ trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.mm 2011-06-30 05:12:28 UTC (rev 90087)
@@ -166,6 +166,9 @@
CFStringRef (*wkCopyDefaultSearchProviderDisplayName)(void);
NSURL *(*wkAVAssetResolvedURL)(AVAsset*);
+
+NSCursor *(*wkCursor)(const char*);
+
#endif
void (*wkUnregisterUniqueIdForElement)(id element);
Modified: trunk/Source/WebKit/mac/ChangeLog (90086 => 90087)
--- trunk/Source/WebKit/mac/ChangeLog 2011-06-30 04:16:18 UTC (rev 90086)
+++ trunk/Source/WebKit/mac/ChangeLog 2011-06-30 05:12:28 UTC (rev 90087)
@@ -1,3 +1,13 @@
+2011-06-29 Darin Adler <[email protected]>
+
+ Reviewed by Dan Bernstein.
+
+ [Mac] Use system cursors instead of custom bitmaps where possible
+ https://bugs.webkit.org/show_bug.cgi?id=63679
+
+ * WebCoreSupport/WebSystemInterface.mm:
+ (InitWebCoreSystemInterface): Added WKCursor.
+
2011-06-28 Ilya Sherman <[email protected]>
Reviewed by Adam Barth.
Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm (90086 => 90087)
--- trunk/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm 2011-06-30 04:16:18 UTC (rev 90086)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm 2011-06-30 05:12:28 UTC (rev 90087)
@@ -1,5 +1,5 @@
/*
- * Copyright 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
+ * Copyright 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -159,6 +159,7 @@
INIT(ExecutableWasLinkedOnOrBeforeSnowLeopard);
INIT(CopyDefaultSearchProviderDisplayName);
INIT(AVAssetResolvedURL);
+ INIT(Cursor);
#endif
INIT(GetAXTextMarkerTypeID);
Modified: trunk/Source/WebKit2/ChangeLog (90086 => 90087)
--- trunk/Source/WebKit2/ChangeLog 2011-06-30 04:16:18 UTC (rev 90086)
+++ trunk/Source/WebKit2/ChangeLog 2011-06-30 05:12:28 UTC (rev 90087)
@@ -1,5 +1,15 @@
2011-06-29 Darin Adler <[email protected]>
+ Reviewed by Dan Bernstein.
+
+ [Mac] Use system cursors instead of custom bitmaps where possible
+ https://bugs.webkit.org/show_bug.cgi?id=63679
+
+ * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
+ (InitWebCoreSystemInterface): Added WKCursor.
+
+2011-06-29 Darin Adler <[email protected]>
+
Reviewed by Anders Carlsson.
[WebKit2] Crash loading page that adds/removes frame in DOMContentLoaded/loaded
Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebSystemInterface.mm (90086 => 90087)
--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebSystemInterface.mm 2011-06-30 04:16:18 UTC (rev 90086)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebSystemInterface.mm 2011-06-30 05:12:28 UTC (rev 90087)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -149,6 +149,7 @@
INIT(ExecutableWasLinkedOnOrBeforeSnowLeopard);
INIT(CopyDefaultSearchProviderDisplayName);
INIT(AVAssetResolvedURL);
+ INIT(Cursor);
#else
INIT(GetHyphenationLocationBeforeIndex);
INIT(GetNSEventMomentumPhase);