summaryrefslogtreecommitdiffstats
path: root/WebCore/html/ImageInputType.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/html/ImageInputType.cpp')
-rw-r--r--WebCore/html/ImageInputType.cpp22
1 files changed, 20 insertions, 2 deletions
diff --git a/WebCore/html/ImageInputType.cpp b/WebCore/html/ImageInputType.cpp
index de24188..7a76174 100644
--- a/WebCore/html/ImageInputType.cpp
+++ b/WebCore/html/ImageInputType.cpp
@@ -24,6 +24,7 @@
#include "FormDataList.h"
#include "HTMLInputElement.h"
+#include "MouseEvent.h"
#include "RenderImage.h"
#include <wtf/PassOwnPtr.h>
@@ -49,8 +50,8 @@ bool ImageInputType::appendFormData(FormDataList& encoding, bool) const
if (!element()->isActivatedSubmit())
return false;
const AtomicString& name = element()->name();
- encoding.appendData(name.isEmpty() ? "x" : (name + ".x"), element()->xPosition());
- encoding.appendData(name.isEmpty() ? "y" : (name + ".y"), element()->yPosition());
+ encoding.appendData(name.isEmpty() ? "x" : (name + ".x"), m_clickLocation.x());
+ encoding.appendData(name.isEmpty() ? "y" : (name + ".y"), m_clickLocation.y());
if (!name.isEmpty() && !element()->value().isEmpty())
encoding.appendData(name, element()->value());
return true;
@@ -61,6 +62,23 @@ bool ImageInputType::supportsValidation() const
return false;
}
+bool ImageInputType::handleDOMActivateEvent(Event* event)
+{
+ RefPtr<HTMLInputElement> element = this->element();
+ if (element->disabled() || !element->form())
+ return false;
+ element->setActivatedSubmit(true);
+ if (event->underlyingEvent() && event->underlyingEvent()->isMouseEvent()) {
+ MouseEvent* mouseEvent = static_cast<MouseEvent*>(event->underlyingEvent());
+ m_clickLocation = IntPoint(mouseEvent->offsetX(), mouseEvent->offsetY());
+ } else
+ m_clickLocation = IntPoint();
+ element->form()->prepareSubmit(event); // Event handlers can run.
+ element->setActivatedSubmit(false);
+ event->setDefaultHandled();
+ return true;
+}
+
RenderObject* ImageInputType::createRenderer(RenderArena* arena, RenderStyle*) const
{
RenderImage* image = new (arena) RenderImage(element());