- Revision
- 102097
- Author
- [email protected]
- Date
- 2011-12-05 22:31:37 -0800 (Mon, 05 Dec 2011)
Log Message
Upstream the Cursor implementation of iOS
https://bugs.webkit.org/show_bug.cgi?id=73724
Patch by Benjamin Poulain <[email protected]> on 2011-12-05
Reviewed by David Kilzer.
iOS does not need to support the Cursor of WebKit. For compatibility, Cursor
is implemented as an empty class on the platform.
* Configurations/WebCore.xcconfig:
* WebCore.xcodeproj/project.pbxproj:
* platform/Cursor.h:
(WebCore::Cursor::Cursor):
* platform/ios/CursorIOS.cpp: Added.
(WebCore::cursor):
(WebCore::pointerCursor):
(WebCore::crossCursor):
(WebCore::handCursor):
(WebCore::moveCursor):
(WebCore::iBeamCursor):
(WebCore::waitCursor):
(WebCore::helpCursor):
(WebCore::eastResizeCursor):
(WebCore::northResizeCursor):
(WebCore::northEastResizeCursor):
(WebCore::northWestResizeCursor):
(WebCore::southResizeCursor):
(WebCore::southEastResizeCursor):
(WebCore::southWestResizeCursor):
(WebCore::westResizeCursor):
(WebCore::northSouthResizeCursor):
(WebCore::eastWestResizeCursor):
(WebCore::northEastSouthWestResizeCursor):
(WebCore::northWestSouthEastResizeCursor):
(WebCore::columnResizeCursor):
(WebCore::rowResizeCursor):
(WebCore::middlePanningCursor):
(WebCore::eastPanningCursor):
(WebCore::northPanningCursor):
(WebCore::northEastPanningCursor):
(WebCore::northWestPanningCursor):
(WebCore::southPanningCursor):
(WebCore::southEastPanningCursor):
(WebCore::southWestPanningCursor):
(WebCore::westPanningCursor):
(WebCore::verticalTextCursor):
(WebCore::cellCursor):
(WebCore::contextMenuCursor):
(WebCore::noDropCursor):
(WebCore::notAllowedCursor):
(WebCore::progressCursor):
(WebCore::aliasCursor):
(WebCore::zoomInCursor):
(WebCore::zoomOutCursor):
(WebCore::copyCursor):
(WebCore::noneCursor):
(WebCore::grabCursor):
(WebCore::grabbingCursor):
(WebCore::determineHotSpot):
Modified Paths
Added Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (102096 => 102097)
--- trunk/Source/WebCore/ChangeLog 2011-12-06 06:20:00 UTC (rev 102096)
+++ trunk/Source/WebCore/ChangeLog 2011-12-06 06:31:37 UTC (rev 102097)
@@ -1,3 +1,64 @@
+2011-12-05 Benjamin Poulain <[email protected]>
+
+ Upstream the Cursor implementation of iOS
+ https://bugs.webkit.org/show_bug.cgi?id=73724
+
+ Reviewed by David Kilzer.
+
+ iOS does not need to support the Cursor of WebKit. For compatibility, Cursor
+ is implemented as an empty class on the platform.
+
+ * Configurations/WebCore.xcconfig:
+ * WebCore.xcodeproj/project.pbxproj:
+ * platform/Cursor.h:
+ (WebCore::Cursor::Cursor):
+ * platform/ios/CursorIOS.cpp: Added.
+ (WebCore::cursor):
+ (WebCore::pointerCursor):
+ (WebCore::crossCursor):
+ (WebCore::handCursor):
+ (WebCore::moveCursor):
+ (WebCore::iBeamCursor):
+ (WebCore::waitCursor):
+ (WebCore::helpCursor):
+ (WebCore::eastResizeCursor):
+ (WebCore::northResizeCursor):
+ (WebCore::northEastResizeCursor):
+ (WebCore::northWestResizeCursor):
+ (WebCore::southResizeCursor):
+ (WebCore::southEastResizeCursor):
+ (WebCore::southWestResizeCursor):
+ (WebCore::westResizeCursor):
+ (WebCore::northSouthResizeCursor):
+ (WebCore::eastWestResizeCursor):
+ (WebCore::northEastSouthWestResizeCursor):
+ (WebCore::northWestSouthEastResizeCursor):
+ (WebCore::columnResizeCursor):
+ (WebCore::rowResizeCursor):
+ (WebCore::middlePanningCursor):
+ (WebCore::eastPanningCursor):
+ (WebCore::northPanningCursor):
+ (WebCore::northEastPanningCursor):
+ (WebCore::northWestPanningCursor):
+ (WebCore::southPanningCursor):
+ (WebCore::southEastPanningCursor):
+ (WebCore::southWestPanningCursor):
+ (WebCore::westPanningCursor):
+ (WebCore::verticalTextCursor):
+ (WebCore::cellCursor):
+ (WebCore::contextMenuCursor):
+ (WebCore::noDropCursor):
+ (WebCore::notAllowedCursor):
+ (WebCore::progressCursor):
+ (WebCore::aliasCursor):
+ (WebCore::zoomInCursor):
+ (WebCore::zoomOutCursor):
+ (WebCore::copyCursor):
+ (WebCore::noneCursor):
+ (WebCore::grabCursor):
+ (WebCore::grabbingCursor):
+ (WebCore::determineHotSpot):
+
2011-12-05 Noel Gordon <[email protected]>
[GTK] GIF image test crashes on 32- and 64-bit Release
Modified: trunk/Source/WebCore/Configurations/WebCore.xcconfig (102096 => 102097)
--- trunk/Source/WebCore/Configurations/WebCore.xcconfig 2011-12-06 06:20:00 UTC (rev 102096)
+++ trunk/Source/WebCore/Configurations/WebCore.xcconfig 2011-12-06 06:31:37 UTC (rev 102097)
@@ -81,7 +81,7 @@
EXCLUDED_SOURCE_FILE_NAMES_SVG_DOM_OBJC_BINDINGS_ENABLE_SVG_DOM_OBJC_BINDINGS = ;
EXCLUDED_SOURCE_FILE_NAMES = $(EXCLUDED_SOURCE_FILE_NAMES_$(REAL_PLATFORM_NAME)) $(EXCLUDED_SOURCE_FILE_NAMES_SVG_DOM_OBJC_BINDINGS);
-EXCLUDED_SOURCE_FILE_NAMES_iphoneos = *.tiff *Cursor.png localizedStrings.js;
+EXCLUDED_SOURCE_FILE_NAMES_iphoneos = *.tiff *Cursor.png Cursor.cpp CursorMac.mm localizedStrings.js;
EXCLUDED_SOURCE_FILE_NAMES_iphonesimulator = $(EXCLUDED_SOURCE_FILE_NAMES_iphoneos);
EXCLUDED_SOURCE_FILE_NAMES_macosx = *IOS.h *IOS.cpp *IOS.mm
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (102096 => 102097)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2011-12-06 06:20:00 UTC (rev 102096)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2011-12-06 06:31:37 UTC (rev 102097)
@@ -677,6 +677,7 @@
2542F4DB1166C25A00E89A86 /* UserGestureIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 2542F4D91166C25A00E89A86 /* UserGestureIndicator.h */; settings = {ATTRIBUTES = (Private, ); }; };
265541391489811C000DFC5D /* KeyEventCodesIOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 265541371489811C000DFC5D /* KeyEventCodesIOS.h */; };
2655413A1489811C000DFC5D /* KeyEventIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 265541381489811C000DFC5D /* KeyEventIOS.mm */; };
+ 265541521489B233000DFC5D /* CursorIOS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2655414B1489AA2B000DFC5D /* CursorIOS.cpp */; };
26E98A10130A9FCA008EB7B2 /* TextCodecASCIIFastPath.h in Headers */ = {isa = PBXBuildFile; fileRef = 26E98A0F130A9FCA008EB7B2 /* TextCodecASCIIFastPath.h */; };
2917B5611473496C0052C9D0 /* LayerFlushScheduler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2917B55E1473496C0052C9D0 /* LayerFlushScheduler.cpp */; };
2917B5621473496C0052C9D0 /* LayerFlushScheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = 2917B55F1473496C0052C9D0 /* LayerFlushScheduler.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -7776,6 +7777,7 @@
2542F4D91166C25A00E89A86 /* UserGestureIndicator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserGestureIndicator.h; sourceTree = "<group>"; };
265541371489811C000DFC5D /* KeyEventCodesIOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = KeyEventCodesIOS.h; path = ios/KeyEventCodesIOS.h; sourceTree = "<group>"; };
265541381489811C000DFC5D /* KeyEventIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = KeyEventIOS.mm; path = ios/KeyEventIOS.mm; sourceTree = "<group>"; };
+ 2655414B1489AA2B000DFC5D /* CursorIOS.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CursorIOS.cpp; path = ios/CursorIOS.cpp; sourceTree = "<group>"; };
26E98A0F130A9FCA008EB7B2 /* TextCodecASCIIFastPath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextCodecASCIIFastPath.h; sourceTree = "<group>"; };
2917B55E1473496C0052C9D0 /* LayerFlushScheduler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = LayerFlushScheduler.cpp; path = ca/LayerFlushScheduler.cpp; sourceTree = "<group>"; };
2917B55F1473496C0052C9D0 /* LayerFlushScheduler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LayerFlushScheduler.h; path = ca/LayerFlushScheduler.h; sourceTree = "<group>"; };
@@ -17601,6 +17603,7 @@
A59E3C1B11580F340072928E /* ios */ = {
isa = PBXGroup;
children = (
+ 2655414B1489AA2B000DFC5D /* CursorIOS.cpp */,
265541371489811C000DFC5D /* KeyEventCodesIOS.h */,
265541381489811C000DFC5D /* KeyEventIOS.mm */,
);
@@ -25330,6 +25333,7 @@
50E566D6139E38C500214433 /* CSSWrapShapes.cpp in Sources */,
E11AF15111B9A1A300805103 /* Cursor.cpp in Sources */,
93F19A2608245E59001E9ABC /* CursorMac.mm in Sources */,
+ 265541521489B233000DFC5D /* CursorIOS.cpp in Sources */,
62CD32591157E57C0063B0A7 /* CustomEvent.cpp in Sources */,
5196116A0CAC56570010A80C /* Database.cpp in Sources */,
51A45B570CAD7FD7000D2BE9 /* DatabaseAuthorizer.cpp in Sources */,
Modified: trunk/Source/WebCore/platform/Cursor.h (102096 => 102097)
--- trunk/Source/WebCore/platform/Cursor.h 2011-12-06 06:20:00 UTC (rev 102096)
+++ trunk/Source/WebCore/platform/Cursor.h 2011-12-06 06:31:37 UTC (rev 102097)
@@ -45,7 +45,7 @@
#include "PlatformCursor.h"
#endif
-#if PLATFORM(MAC)
+#if PLATFORM(MAC) && !PLATFORM(IOS)
#ifdef __OBJC__
@class NSCursor;
#else
@@ -81,7 +81,7 @@
HCURSOR m_nativeCursor;
};
typedef RefPtr<SharedCursor> PlatformCursor;
-#elif PLATFORM(MAC)
+#elif PLATFORM(MAC) && !PLATFORM(IOS)
typedef NSCursor *PlatformCursor;
#elif PLATFORM(GTK)
typedef GRefPtr<GdkCursor> PlatformCursor;
@@ -150,10 +150,13 @@
static const Cursor& fromType(Cursor::Type);
Cursor()
+#if !PLATFORM(IOS)
: m_platformCursor(0)
+#endif
{
}
+#if !PLATFORM(IOS)
Cursor(Image*, const IntPoint& hotSpot);
Cursor(const Cursor&);
~Cursor();
@@ -184,6 +187,7 @@
#else
mutable RetainPtr<NSCursor> m_platformCursor;
#endif
+#endif // !PLATFORM(IOS)
};
IntPoint determineHotSpot(Image*, const IntPoint& specifiedHotSpot);
Added: trunk/Source/WebCore/platform/ios/CursorIOS.cpp (0 => 102097)
--- trunk/Source/WebCore/platform/ios/CursorIOS.cpp (rev 0)
+++ trunk/Source/WebCore/platform/ios/CursorIOS.cpp 2011-12-06 06:31:37 UTC (rev 102097)
@@ -0,0 +1,257 @@
+/*
+ * Copyright (C) 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
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "Cursor.h"
+
+namespace WebCore {
+
+static const Cursor& cursor()
+{
+ DEFINE_STATIC_LOCAL(const Cursor, cursor, ());
+ return cursor;
+}
+
+const Cursor& pointerCursor()
+{
+ return cursor();
+}
+
+const Cursor& crossCursor()
+{
+ return cursor();
+}
+
+const Cursor& handCursor()
+{
+ return cursor();
+}
+
+const Cursor& moveCursor()
+{
+ return cursor();
+}
+
+const Cursor& iBeamCursor()
+{
+ return cursor();
+}
+
+const Cursor& waitCursor()
+{
+ return cursor();
+}
+
+const Cursor& helpCursor()
+{
+ return cursor();
+}
+
+const Cursor& eastResizeCursor()
+{
+ return cursor();
+}
+
+const Cursor& northResizeCursor()
+{
+ return cursor();
+}
+
+const Cursor& northEastResizeCursor()
+{
+ return cursor();
+}
+
+const Cursor& northWestResizeCursor()
+{
+ return cursor();
+}
+
+const Cursor& southResizeCursor()
+{
+ return cursor();
+}
+
+const Cursor& southEastResizeCursor()
+{
+ return cursor();
+}
+
+const Cursor& southWestResizeCursor()
+{
+ return cursor();
+}
+
+const Cursor& westResizeCursor()
+{
+ return cursor();
+}
+
+const Cursor& northSouthResizeCursor()
+{
+ return cursor();
+}
+
+const Cursor& eastWestResizeCursor()
+{
+ return cursor();
+}
+
+const Cursor& northEastSouthWestResizeCursor()
+{
+ return cursor();
+}
+
+const Cursor& northWestSouthEastResizeCursor()
+{
+ return cursor();
+}
+
+const Cursor& columnResizeCursor()
+{
+ return cursor();
+}
+
+const Cursor& rowResizeCursor()
+{
+ return cursor();
+}
+
+const Cursor& middlePanningCursor()
+{
+ return cursor();
+}
+
+const Cursor& eastPanningCursor()
+{
+ return cursor();
+}
+
+const Cursor& northPanningCursor()
+{
+ return cursor();
+}
+
+const Cursor& northEastPanningCursor()
+{
+ return cursor();
+}
+
+const Cursor& northWestPanningCursor()
+{
+ return cursor();
+}
+
+const Cursor& southPanningCursor()
+{
+ return cursor();
+}
+
+const Cursor& southEastPanningCursor()
+{
+ return cursor();
+}
+
+const Cursor& southWestPanningCursor()
+{
+ return cursor();
+}
+
+const Cursor& westPanningCursor()
+{
+ return cursor();
+}
+
+const Cursor& verticalTextCursor()
+{
+ return cursor();
+}
+
+const Cursor& cellCursor()
+{
+ return cursor();
+}
+
+const Cursor& contextMenuCursor()
+{
+ return cursor();
+}
+
+const Cursor& noDropCursor()
+{
+ return cursor();
+}
+
+const Cursor& notAllowedCursor()
+{
+ return cursor();
+}
+
+const Cursor& progressCursor()
+{
+ return cursor();
+}
+
+const Cursor& aliasCursor()
+{
+ return cursor();
+}
+
+const Cursor& zoomInCursor()
+{
+ return cursor();
+}
+
+const Cursor& zoomOutCursor()
+{
+ return cursor();
+}
+
+const Cursor& copyCursor()
+{
+ return cursor();
+}
+
+const Cursor& noneCursor()
+{
+ return cursor();
+}
+
+const Cursor& grabCursor()
+{
+ return cursor();
+}
+
+const Cursor& grabbingCursor()
+{
+ return cursor();
+}
+
+IntPoint determineHotSpot(Image*, const IntPoint&)
+{
+ return IntPoint();
+}
+
+}