[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-10851-g50815da
dglazkov at chromium.org
dglazkov at chromium.org
Wed Dec 22 18:37:15 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 363181d98ca3f90cea861592111d885fa640148b
Author: dglazkov at chromium.org <dglazkov at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue Dec 14 19:30:22 2010 +0000
2010-12-13 Dimitri Glazkov <dglazkov at chromium.org>
Reviewed by David Levin.
Move SliderThumbElement into its own file.
https://bugs.webkit.org/show_bug.cgi?id=50973
No change in behavior, so no tests.
* Android.mk: Added SliderThumbElement.
* CMakeLists.txt: Ditto.
* WebCore.gyp/WebCore.gyp: Ditto.
* WebCore.gypi: Ditto.
* WebCore.pro: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto,
* html/shadow/SliderThumbElement.cpp: Added.
* html/shadow/SliderThumbElement.h: Added.
* rendering/RenderSlider.cpp: Removed code that was moved into
SliderThumbElement.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@74044 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/Android.mk b/WebCore/Android.mk
index f780310..7f13ffb 100644
--- a/WebCore/Android.mk
+++ b/WebCore/Android.mk
@@ -345,6 +345,8 @@ LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
html/parser/TextDocumentParser.cpp \
html/parser/TextViewSourceParser.cpp \
\
+ html/shadow/SliderThumbElement.cpp \
+ \
loader/cache/CachedCSSStyleSheet.cpp \
loader/cache/CachedFont.cpp \
loader/cache/CachedImage.cpp \
diff --git a/WebCore/CMakeLists.txt b/WebCore/CMakeLists.txt
index 2b0ee30..28d0bfe 100644
--- a/WebCore/CMakeLists.txt
+++ b/WebCore/CMakeLists.txt
@@ -18,6 +18,7 @@ SET(WebCore_INCLUDE_DIRECTORIES
"${WEBCORE_DIR}/html"
"${WEBCORE_DIR}/html/canvas"
"${WEBCORE_DIR}/html/parser"
+ "${WEBCORE_DIR}/html/shadow"
"${WEBCORE_DIR}/inspector"
"${WEBCORE_DIR}/loader"
"${WEBCORE_DIR}/loader/appcache"
@@ -1142,6 +1143,8 @@ SET(WebCore_SOURCES
html/parser/TextDocumentParser.cpp
html/parser/TextViewSourceParser.cpp
+ html/shadow/SliderThumbElement.cpp
+
inspector/ConsoleMessage.cpp
inspector/InjectedScript.cpp
inspector/InjectedScriptHost.cpp
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 0c4c347..72aa499 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,24 @@
+2010-12-13 Dimitri Glazkov <dglazkov at chromium.org>
+
+ Reviewed by David Levin.
+
+ Move SliderThumbElement into its own file.
+ https://bugs.webkit.org/show_bug.cgi?id=50973
+
+ No change in behavior, so no tests.
+
+ * Android.mk: Added SliderThumbElement.
+ * CMakeLists.txt: Ditto.
+ * WebCore.gyp/WebCore.gyp: Ditto.
+ * WebCore.gypi: Ditto.
+ * WebCore.pro: Ditto.
+ * WebCore.vcproj/WebCore.vcproj: Ditto.
+ * WebCore.xcodeproj/project.pbxproj: Ditto,
+ * html/shadow/SliderThumbElement.cpp: Added.
+ * html/shadow/SliderThumbElement.h: Added.
+ * rendering/RenderSlider.cpp: Removed code that was moved into
+ SliderThumbElement.
+
2010-12-13 Alexey Proskuryakov <ap at apple.com>
Reviewed by Adam Barth.
diff --git a/WebCore/GNUmakefile.am b/WebCore/GNUmakefile.am
index 4d95df7..1cdd83d 100644
--- a/WebCore/GNUmakefile.am
+++ b/WebCore/GNUmakefile.am
@@ -24,6 +24,7 @@ webcore_cppflags += \
-I$(srcdir)/WebCore/html \
-I$(srcdir)/WebCore/html/canvas \
-I$(srcdir)/WebCore/html/parser \
+ -I$(srcdir)/WebCore/html/shadow \
-I$(srcdir)/WebCore/inspector \
-I$(srcdir)/WebCore/loader \
-I$(srcdir)/WebCore/loader/appcache \
diff --git a/WebCore/WebCore.gyp/WebCore.gyp b/WebCore/WebCore.gyp/WebCore.gyp
index 5150f24..5689580 100644
--- a/WebCore/WebCore.gyp/WebCore.gyp
+++ b/WebCore/WebCore.gyp/WebCore.gyp
@@ -133,6 +133,7 @@
'../html',
'../html/canvas',
'../html/parser',
+ '../html/shadow',
'../inspector',
'../loader',
'../loader/appcache',
diff --git a/WebCore/WebCore.gypi b/WebCore/WebCore.gypi
index 00f719b..7061ffd 100644
--- a/WebCore/WebCore.gypi
+++ b/WebCore/WebCore.gypi
@@ -1989,6 +1989,8 @@
'html/parser/TextDocumentParser.h',
'html/parser/TextViewSourceParser.cpp',
'html/parser/TextViewSourceParser.h',
+ 'html/shadow/SliderThumbElement.cpp',
+ 'html/shadow/SliderThumbElement.h',
'inspector/ConsoleMessage.cpp',
'inspector/ConsoleMessage.h',
'inspector/InjectedScript.cpp',
diff --git a/WebCore/WebCore.pro b/WebCore/WebCore.pro
index 11bf514..46e9b0d 100644
--- a/WebCore/WebCore.pro
+++ b/WebCore/WebCore.pro
@@ -227,6 +227,7 @@ WEBCORE_INCLUDEPATH = \
$$PWD/html \
$$PWD/html/canvas \
$$PWD/html/parser \
+ $$PWD/html/shadow \
$$PWD/inspector \
$$PWD/loader \
$$PWD/loader/appcache \
@@ -1020,6 +1021,7 @@ SOURCES += \
html/parser/HTMLViewSourceParser.cpp \
html/parser/TextDocumentParser.cpp \
html/parser/TextViewSourceParser.cpp \
+ html/shadow/SliderThumbElement.cpp \
inspector/ConsoleMessage.cpp \
inspector/InjectedScript.cpp \
inspector/InjectedScriptHost.cpp \
diff --git a/WebCore/WebCore.vcproj/WebCore.vcproj b/WebCore/WebCore.vcproj/WebCore.vcproj
index c072d5b..e0dac04 100755
--- a/WebCore/WebCore.vcproj/WebCore.vcproj
+++ b/WebCore/WebCore.vcproj/WebCore.vcproj
@@ -55321,6 +55321,18 @@
>
</File>
</Filter>
+ <Filter
+ Name="shadow"
+ >
+ <File
+ RelativePath="..\html\shadow\SliderThumbElement.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\html\shadow\SliderThumbElement.h"
+ >
+ </File>
+ </Filter>
</Filter>
<Filter
Name="bindings"
diff --git a/WebCore/WebCore.vcproj/WebCoreCommon.vsprops b/WebCore/WebCore.vcproj/WebCoreCommon.vsprops
index 5c5c481..529b228 100644
--- a/WebCore/WebCore.vcproj/WebCoreCommon.vsprops
+++ b/WebCore/WebCore.vcproj/WebCoreCommon.vsprops
@@ -7,7 +7,7 @@
>
<Tool
Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""$(ProjectDir)..";"$(ProjectDir)..\accessibility";"$(ProjectDir)..\accessibility\win";"$(ProjectDir)..\bridge";"$(ProjectDir)..\bridge\c";"$(ProjectDir)..\bridge\jsc";"$(ProjectDir)..\css";"$(ProjectDir)..\editing";"$(ProjectDir)..\fileapi";"$(ProjectDir)..\rendering";"$(ProjectDir)..\rendering\style";"$(ProjectDir)..\rendering\svg";"$(ProjectDir)..\bindings";"$(ProjectDir)..\bindings\generic";"$(ProjectDir)..\bindings\js";"$(ProjectDir)..\bindings\js\specialization";"$(ProjectDir)..\dom";"$(ProjectDir)..\dom\default";"$(ProjectDir)..\history";"$(ProjectDir)..\html";"$(ProjectDir)..\html\canvas";"$(ProjectDir)..\html\parser";"$(ProjectDir)..\inspector";"$(ProjectDir)..\loader";"$(ProjectDir)..\loader\appcache";"$(ProjectDir)..\loader\archive";"$(ProjectDir)..\loader\archive\cf";"$(ProjectDir)..\loader\cache";"$(ProjectDir)..\loader\icon";"$(ProjectDir)..\mathml";"$(ProjectDir)..\notifications";"$(ProjectDir)..\page";"$(ProjectDir)..\page\animation";"$(ProjectDir)..\page\win";"$(ProjectDir)..\platform";"$(ProjectDir)..\platform\animation";"$(ProjectDir)..\platform\mock";"$(ProjectDir)..\platform\sql";"$(ProjectDir)..\platform\win";"$(ProjectDir)..\platform\network";"$(ProjectDir)..\platform\network\win";"$(ProjectDir)..\platform\cf";"$(ProjectDir)..\platform\graphics";"$(ProjectDir)..\platform\graphics\filters";"$(ProjectDir)..\platform\graphics\opentype";"$(ProjectDir)..\platform\graphics\transforms";"$(ProjectDir)..\platform\text";"$(ProjectDir)..\platform\text\transcoder";"$(ProjectDir)..\platform\graphics\win";"$(ProjectDir)..\xml";"$(WebKitOutputDir)\obj\WebCore\DerivedSources";"$(ProjectDir)..\plugins";"$(ProjectDir)..\plugins\win";"$(ProjectDir)..\svg\animation";"$(ProjectDir)..\svg\graphics";"$(ProjectDir)..\svg\properties";"$(ProjectDir)..\svg\graphics\filters";"$(ProjectDir)..\svg";"$(ProjectDir)..\wml";"$(ProjectDir)..\storage";"$(ProjectDir)..\websockets";"$(ProjectDir)..\workers";"$(WebKitOutputDir)\include";"$(WebKitOutputDir)\include\private";"$(WebKitOutputDir)\include\JavaScriptCore";"$(WebKitOutputDir)\include\private\JavaScriptCore";"$(ProjectDir)..\ForwardingHeaders";"$(WebKitLibrariesDir)\include";"$(WebKitLibrariesDir)\include\private";"$(WebKitLibrariesDir)\include\private\JavaScriptCore";"$(WebKitLibrariesDir)\include\pthreads";"$(WebKitLibrariesDir)\include\sqlite";"$(WebKitLibrariesDir)\include\JavaScriptCore";"$(WebKitLibrariesDir)\include\zlib""
+ AdditionalIncludeDirectories=""$(ProjectDir)..";"$(ProjectDir)..\accessibility";"$(ProjectDir)..\accessibility\win";"$(ProjectDir)..\bridge";"$(ProjectDir)..\bridge\c";"$(ProjectDir)..\bridge\jsc";"$(ProjectDir)..\css";"$(ProjectDir)..\editing";"$(ProjectDir)..\fileapi";"$(ProjectDir)..\rendering";"$(ProjectDir)..\rendering\style";"$(ProjectDir)..\rendering\svg";"$(ProjectDir)..\bindings";"$(ProjectDir)..\bindings\generic";"$(ProjectDir)..\bindings\js";"$(ProjectDir)..\bindings\js\specialization";"$(ProjectDir)..\dom";"$(ProjectDir)..\dom\default";"$(ProjectDir)..\history";"$(ProjectDir)..\html";"$(ProjectDir)..\html\canvas";"$(ProjectDir)..\html\parser";"$(ProjectDir)..\html\shadow";"$(ProjectDir)..\inspector";"$(ProjectDir)..\loader";"$(ProjectDir)..\loader\appcache";"$(ProjectDir)..\loader\archive";"$(ProjectDir)..\loader\archive\cf";"$(ProjectDir)..\loader\cache";"$(ProjectDir)..\loader\icon";"$(ProjectDir)..\mathml";"$(ProjectDir)..\notifications";"$(ProjectDir)..\page";"$(ProjectDir)..\page\animation";"$(ProjectDir)..\page\win";"$(ProjectDir)..\platform";"$(ProjectDir)..\platform\animation";"$(ProjectDir)..\platform\mock";"$(ProjectDir)..\platform\sql";"$(ProjectDir)..\platform\win";"$(ProjectDir)..\platform\network";"$(ProjectDir)..\platform\network\win";"$(ProjectDir)..\platform\cf";"$(ProjectDir)..\platform\graphics";"$(ProjectDir)..\platform\graphics\filters";"$(ProjectDir)..\platform\graphics\opentype";"$(ProjectDir)..\platform\graphics\transforms";"$(ProjectDir)..\platform\text";"$(ProjectDir)..\platform\text\transcoder";"$(ProjectDir)..\platform\graphics\win";"$(ProjectDir)..\xml";"$(WebKitOutputDir)\obj\WebCore\DerivedSources";"$(ProjectDir)..\plugins";"$(ProjectDir)..\plugins\win";"$(ProjectDir)..\svg\animation";"$(ProjectDir)..\svg\graphics";"$(ProjectDir)..\svg\properties";"$(ProjectDir)..\svg\graphics\filters";"$(ProjectDir)..\svg";"$(ProjectDir)..\wml";"$(ProjectDir)..\storage";"$(ProjectDir)..\websockets";"$(ProjectDir)..\workers";"$(WebKitOutputDir)\include";"$(WebKitOutputDir)\include\private";"$(WebKitOutputDir)\include\JavaScriptCore";"$(WebKitOutputDir)\include\private\JavaScriptCore";"$(ProjectDir)..\ForwardingHeaders";"$(WebKitLibrariesDir)\include";"$(WebKitLibrariesDir)\include\private";"$(WebKitLibrariesDir)\include\private\JavaScriptCore";"$(WebKitLibrariesDir)\include\pthreads";"$(WebKitLibrariesDir)\include\sqlite";"$(WebKitLibrariesDir)\include\JavaScriptCore";"$(WebKitLibrariesDir)\include\zlib""
PreprocessorDefinitions="__WIN32__;DISABLE_3D_RENDERING;WEBCORE_CONTEXT_MENUS"
UsePrecompiledHeader="2"
PrecompiledHeaderThrough="WebCorePrefix.h"
diff --git a/WebCore/WebCore.xcodeproj/project.pbxproj b/WebCore/WebCore.xcodeproj/project.pbxproj
index c22ee6d..89c8894 100644
--- a/WebCore/WebCore.xcodeproj/project.pbxproj
+++ b/WebCore/WebCore.xcodeproj/project.pbxproj
@@ -919,6 +919,8 @@
4127D5370F8AAB1D00E424F5 /* ScriptState.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4127D5360F8AAB1D00E424F5 /* ScriptState.cpp */; };
4138D3351244054800323D33 /* EventContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 4138D3331244054800323D33 /* EventContext.h */; };
4138D3361244054800323D33 /* EventContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4138D3341244054800323D33 /* EventContext.cpp */; };
+ 4150F9F112B6E0E70008C860 /* SliderThumbElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 4150F9EF12B6E0E70008C860 /* SliderThumbElement.h */; };
+ 4150F9F212B6E0E70008C860 /* SliderThumbElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4150F9F012B6E0E70008C860 /* SliderThumbElement.cpp */; };
4162A450101145AE00DFF3ED /* DedicatedWorkerContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4162A44D101145AE00DFF3ED /* DedicatedWorkerContext.cpp */; };
4162A451101145AE00DFF3ED /* DedicatedWorkerContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 4162A44E101145AE00DFF3ED /* DedicatedWorkerContext.h */; };
4162A454101145E300DFF3ED /* JSDedicatedWorkerContextCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4162A453101145E300DFF3ED /* JSDedicatedWorkerContextCustom.cpp */; };
@@ -7220,6 +7222,8 @@
4127D5360F8AAB1D00E424F5 /* ScriptState.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptState.cpp; sourceTree = "<group>"; };
4138D3331244054800323D33 /* EventContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EventContext.h; sourceTree = "<group>"; };
4138D3341244054800323D33 /* EventContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EventContext.cpp; sourceTree = "<group>"; };
+ 4150F9EF12B6E0E70008C860 /* SliderThumbElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SliderThumbElement.h; sourceTree = "<group>"; };
+ 4150F9F012B6E0E70008C860 /* SliderThumbElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SliderThumbElement.cpp; sourceTree = "<group>"; };
4162A44D101145AE00DFF3ED /* DedicatedWorkerContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DedicatedWorkerContext.cpp; path = workers/DedicatedWorkerContext.cpp; sourceTree = "<group>"; };
4162A44E101145AE00DFF3ED /* DedicatedWorkerContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DedicatedWorkerContext.h; path = workers/DedicatedWorkerContext.h; sourceTree = "<group>"; };
4162A44F101145AE00DFF3ED /* DedicatedWorkerContext.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = DedicatedWorkerContext.idl; path = workers/DedicatedWorkerContext.idl; sourceTree = "<group>"; };
@@ -13022,6 +13026,15 @@
name = Notifications;
sourceTree = "<group>";
};
+ 4150F9ED12B6E0990008C860 /* shadow */ = {
+ isa = PBXGroup;
+ children = (
+ 4150F9EF12B6E0E70008C860 /* SliderThumbElement.h */,
+ 4150F9F012B6E0E70008C860 /* SliderThumbElement.cpp */,
+ );
+ path = shadow;
+ sourceTree = "<group>";
+ };
449195900FBE175B00D9F824 /* Exports */ = {
isa = PBXGroup;
children = (
@@ -15181,6 +15194,7 @@
children = (
49484FAE102CF01E00187DD3 /* canvas */,
97C1F5511228558800EDE616 /* parser */,
+ 4150F9ED12B6E0990008C860 /* shadow */,
B0149E7911A4B21500196A7B /* AsyncImageResizer.cpp */,
B0149E7A11A4B21500196A7B /* AsyncImageResizer.h */,
379E61C5126CA5C300B63E8D /* BaseButtonInputType.cpp */,
@@ -21568,6 +21582,7 @@
B2C3DA650D006CD600EF6F26 /* SimpleFontData.h in Headers */,
51327D6011A33A2B004F9D65 /* SinkDocument.h in Headers */,
49E911CD0EF86D47009D0CAF /* SkewTransformOperation.h in Headers */,
+ 4150F9F112B6E0E70008C860 /* SliderThumbElement.h in Headers */,
4B6FA6F40C39E48C00087011 /* SmartReplace.h in Headers */,
E4AFD00C0DAF335400F5F55C /* SMILTime.h in Headers */,
E4AFD00E0DAF335500F5F55C /* SMILTimeContainer.h in Headers */,
@@ -24339,6 +24354,7 @@
B2AFFC7F0D00A5C10030074D /* SimpleFontDataMac.mm in Sources */,
51327D6111A33A2B004F9D65 /* SinkDocument.cpp in Sources */,
49E911CC0EF86D47009D0CAF /* SkewTransformOperation.cpp in Sources */,
+ 4150F9F212B6E0E70008C860 /* SliderThumbElement.cpp in Sources */,
4B6FA6F50C39E48C00087011 /* SmartReplace.cpp in Sources */,
4B6FA6F70C39E4A100087011 /* SmartReplaceCF.cpp in Sources */,
E4AFD00B0DAF335400F5F55C /* SMILTime.cpp in Sources */,
diff --git a/WebCore/html/shadow/SliderThumbElement.cpp b/WebCore/html/shadow/SliderThumbElement.cpp
new file mode 100644
index 0000000..55301c1
--- /dev/null
+++ b/WebCore/html/shadow/SliderThumbElement.cpp
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2010 Google 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:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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 THE COPYRIGHT
+ * OWNER 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 "SliderThumbElement.h"
+
+#include "Event.h"
+#include "Frame.h"
+#include "MouseEvent.h"
+#include "RenderSlider.h"
+
+namespace WebCore {
+
+void SliderThumbElement::defaultEventHandler(Event* event)
+{
+ if (!event->isMouseEvent()) {
+ ShadowBlockElement::defaultEventHandler(event);
+ return;
+ }
+
+ MouseEvent* mouseEvent = static_cast<MouseEvent*>(event);
+ bool isLeftButton = mouseEvent->button() == LeftButton;
+ const AtomicString& eventType = event->type();
+
+ if (eventType == eventNames().mousedownEvent && isLeftButton) {
+ if (document()->frame() && renderer()) {
+ RenderSlider* slider = toRenderSlider(renderer()->parent());
+ if (slider) {
+ if (slider->mouseEventIsInThumb(mouseEvent)) {
+ // We selected the thumb, we want the cursor to always stay at
+ // the same position relative to the thumb.
+ m_offsetToThumb = slider->mouseEventOffsetToThumb(mouseEvent);
+ } else {
+ // We are outside the thumb, move the thumb to the point were
+ // we clicked. We'll be exactly at the center of the thumb.
+ m_offsetToThumb.setX(0);
+ m_offsetToThumb.setY(0);
+ }
+
+ m_inDragMode = true;
+ document()->frame()->eventHandler()->setCapturingMouseEventsNode(shadowHost());
+ event->setDefaultHandled();
+ return;
+ }
+ }
+ } else if (eventType == eventNames().mouseupEvent && isLeftButton) {
+ if (m_inDragMode) {
+ if (Frame* frame = document()->frame())
+ frame->eventHandler()->setCapturingMouseEventsNode(0);
+ m_inDragMode = false;
+ event->setDefaultHandled();
+ return;
+ }
+ } else if (eventType == eventNames().mousemoveEvent) {
+ if (m_inDragMode && renderer() && renderer()->parent()) {
+ RenderSlider* slider = toRenderSlider(renderer()->parent());
+ if (slider) {
+ FloatPoint curPoint = slider->absoluteToLocal(mouseEvent->absoluteLocation(), false, true);
+ IntPoint eventOffset(curPoint.x() + m_offsetToThumb.x(), curPoint.y() + m_offsetToThumb.y());
+ slider->setValueForPosition(slider->positionForOffset(eventOffset));
+ event->setDefaultHandled();
+ return;
+ }
+ }
+ }
+
+ ShadowBlockElement::defaultEventHandler(event);
+}
+
+void SliderThumbElement::detach()
+{
+ if (m_inDragMode) {
+ if (Frame* frame = document()->frame())
+ frame->eventHandler()->setCapturingMouseEventsNode(0);
+ }
+ ShadowBlockElement::detach();
+}
+
+}
+
diff --git a/WebCore/html/shadow/SliderThumbElement.h b/WebCore/html/shadow/SliderThumbElement.h
new file mode 100644
index 0000000..8205746
--- /dev/null
+++ b/WebCore/html/shadow/SliderThumbElement.h
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2010 Google 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:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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 THE COPYRIGHT
+ * OWNER 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.
+ */
+
+#ifndef SliderThumbElement_h
+#define SliderThumbElement_h
+
+#include "FloatPoint.h"
+#include "ShadowElement.h"
+#include <wtf/Forward.h>
+
+namespace WebCore {
+
+class HTMLElement;
+class Event;
+class FloatPoint;
+
+class SliderThumbElement : public ShadowBlockElement {
+public:
+ static PassRefPtr<SliderThumbElement> create(HTMLElement* shadowParent);
+
+ bool inDragMode() const { return m_inDragMode; }
+
+ virtual void defaultEventHandler(Event*);
+ virtual void detach();
+
+private:
+ SliderThumbElement(HTMLElement* shadowParent);
+
+ FloatPoint m_offsetToThumb;
+ bool m_inDragMode;
+};
+
+inline SliderThumbElement::SliderThumbElement(HTMLElement* shadowParent)
+ : ShadowBlockElement(shadowParent)
+ , m_inDragMode(false)
+{
+}
+
+inline PassRefPtr<SliderThumbElement> SliderThumbElement::create(HTMLElement* shadowParent)
+{
+ return adoptRef(new SliderThumbElement(shadowParent));
+}
+
+}
+
+
+#endif
diff --git a/WebCore/rendering/RenderSlider.cpp b/WebCore/rendering/RenderSlider.cpp
index 1619d94..b73a1ac 100644
--- a/WebCore/rendering/RenderSlider.cpp
+++ b/WebCore/rendering/RenderSlider.cpp
@@ -36,6 +36,7 @@
#include "RenderTheme.h"
#include "RenderView.h"
#include "ShadowElement.h"
+#include "SliderThumbElement.h"
#include "StepRange.h"
#include <wtf/MathExtras.h>
@@ -52,98 +53,6 @@ static double sliderPosition(HTMLInputElement* element)
return range.proportionFromValue(range.valueFromElement(element));
}
-class SliderThumbElement : public ShadowBlockElement {
-public:
- static PassRefPtr<SliderThumbElement> create(HTMLElement* shadowParent);
-
- bool inDragMode() const { return m_inDragMode; }
-
- virtual void defaultEventHandler(Event*);
- virtual void detach();
-
-private:
- SliderThumbElement(HTMLElement* shadowParent);
-
- FloatPoint m_offsetToThumb;
- bool m_inDragMode;
-};
-
-inline SliderThumbElement::SliderThumbElement(HTMLElement* shadowParent)
- : ShadowBlockElement(shadowParent)
- , m_inDragMode(false)
-{
-}
-
-inline PassRefPtr<SliderThumbElement> SliderThumbElement::create(HTMLElement* shadowParent)
-{
- return adoptRef(new SliderThumbElement(shadowParent));
-}
-
-void SliderThumbElement::defaultEventHandler(Event* event)
-{
- if (!event->isMouseEvent()) {
- ShadowBlockElement::defaultEventHandler(event);
- return;
- }
-
- MouseEvent* mouseEvent = static_cast<MouseEvent*>(event);
- bool isLeftButton = mouseEvent->button() == LeftButton;
- const AtomicString& eventType = event->type();
-
- if (eventType == eventNames().mousedownEvent && isLeftButton) {
- if (document()->frame() && renderer()) {
- RenderSlider* slider = toRenderSlider(renderer()->parent());
- if (slider) {
- if (slider->mouseEventIsInThumb(mouseEvent)) {
- // We selected the thumb, we want the cursor to always stay at
- // the same position relative to the thumb.
- m_offsetToThumb = slider->mouseEventOffsetToThumb(mouseEvent);
- } else {
- // We are outside the thumb, move the thumb to the point were
- // we clicked. We'll be exactly at the center of the thumb.
- m_offsetToThumb.setX(0);
- m_offsetToThumb.setY(0);
- }
-
- m_inDragMode = true;
- document()->frame()->eventHandler()->setCapturingMouseEventsNode(shadowHost());
- event->setDefaultHandled();
- return;
- }
- }
- } else if (eventType == eventNames().mouseupEvent && isLeftButton) {
- if (m_inDragMode) {
- if (Frame* frame = document()->frame())
- frame->eventHandler()->setCapturingMouseEventsNode(0);
- m_inDragMode = false;
- event->setDefaultHandled();
- return;
- }
- } else if (eventType == eventNames().mousemoveEvent) {
- if (m_inDragMode && renderer() && renderer()->parent()) {
- RenderSlider* slider = toRenderSlider(renderer()->parent());
- if (slider) {
- FloatPoint curPoint = slider->absoluteToLocal(mouseEvent->absoluteLocation(), false, true);
- IntPoint eventOffset(curPoint.x() + m_offsetToThumb.x(), curPoint.y() + m_offsetToThumb.y());
- slider->setValueForPosition(slider->positionForOffset(eventOffset));
- event->setDefaultHandled();
- return;
- }
- }
- }
-
- ShadowBlockElement::defaultEventHandler(event);
-}
-
-void SliderThumbElement::detach()
-{
- if (m_inDragMode) {
- if (Frame* frame = document()->frame())
- frame->eventHandler()->setCapturingMouseEventsNode(0);
- }
- ShadowBlockElement::detach();
-}
-
RenderSlider::RenderSlider(HTMLInputElement* element)
: RenderBlock(element)
{
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list