[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677
mjs
mjs at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:14:52 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit 1fbd4d9f907f94961ab19935a12b1bb5463707cb
Author: mjs <mjs at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Sat Dec 14 02:42:45 2002 +0000
Reviewed by Don.
* khtml/dom/dom2_events.cpp:
(UIEvent::layerX): Added to support nonstandard Mozilla
event.layerX property.
(UIEvent::layerY): Added to support nonstandard Mozilla
event.layerY property.
* khtml/dom/dom2_events.h:
* khtml/ecma/kjs_events.cpp:
(DOMUIEvent::getValueProperty): Implemented layerX and layerY
* khtml/ecma/kjs_events.h:
* khtml/ecma/kjs_events.lut.h:
* khtml/xml/dom2_eventsimpl.cpp:
(MouseEventImpl::MouseEventImpl): Added call to computeLayerPos.
(MouseEventImpl::computeLayerPos): Compute layer position.
(MouseEventImpl::layerX): Added.
(MouseEventImpl::layerY): Added.
(MouseEventImpl::initMouseEvent): Added call to computeLayerPos.
* khtml/xml/dom2_eventsimpl.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3048 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index dde203d..21891b2 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,25 @@
+2002-12-13 Maciej Stachowiak <mjs at apple.com>
+
+ Reviewed by Don.
+
+ * khtml/dom/dom2_events.cpp:
+ (UIEvent::layerX): Added to support nonstandard Mozilla
+ event.layerX property.
+ (UIEvent::layerY): Added to support nonstandard Mozilla
+ event.layerY property.
+ * khtml/dom/dom2_events.h:
+ * khtml/ecma/kjs_events.cpp:
+ (DOMUIEvent::getValueProperty): Implemented layerX and layerY
+ * khtml/ecma/kjs_events.h:
+ * khtml/ecma/kjs_events.lut.h:
+ * khtml/xml/dom2_eventsimpl.cpp:
+ (MouseEventImpl::MouseEventImpl): Added call to computeLayerPos.
+ (MouseEventImpl::computeLayerPos): Compute layer position.
+ (MouseEventImpl::layerX): Added.
+ (MouseEventImpl::layerY): Added.
+ (MouseEventImpl::initMouseEvent): Added call to computeLayerPos.
+ * khtml/xml/dom2_eventsimpl.h:
+
2002-12-13 David Hyatt <hyatt at apple.com>
Fix for 314799, image at wired.com doesn't show up. Block
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index dde203d..21891b2 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,25 @@
+2002-12-13 Maciej Stachowiak <mjs at apple.com>
+
+ Reviewed by Don.
+
+ * khtml/dom/dom2_events.cpp:
+ (UIEvent::layerX): Added to support nonstandard Mozilla
+ event.layerX property.
+ (UIEvent::layerY): Added to support nonstandard Mozilla
+ event.layerY property.
+ * khtml/dom/dom2_events.h:
+ * khtml/ecma/kjs_events.cpp:
+ (DOMUIEvent::getValueProperty): Implemented layerX and layerY
+ * khtml/ecma/kjs_events.h:
+ * khtml/ecma/kjs_events.lut.h:
+ * khtml/xml/dom2_eventsimpl.cpp:
+ (MouseEventImpl::MouseEventImpl): Added call to computeLayerPos.
+ (MouseEventImpl::computeLayerPos): Compute layer position.
+ (MouseEventImpl::layerX): Added.
+ (MouseEventImpl::layerY): Added.
+ (MouseEventImpl::initMouseEvent): Added call to computeLayerPos.
+ * khtml/xml/dom2_eventsimpl.h:
+
2002-12-13 David Hyatt <hyatt at apple.com>
Fix for 314799, image at wired.com doesn't show up. Block
diff --git a/WebCore/khtml/dom/dom2_events.cpp b/WebCore/khtml/dom/dom2_events.cpp
index ef6b5f7..ad93d86 100644
--- a/WebCore/khtml/dom/dom2_events.cpp
+++ b/WebCore/khtml/dom/dom2_events.cpp
@@ -279,7 +279,6 @@ int UIEvent::pageX() const
return 0;
}
-
int UIEvent::pageY() const
{
if (!impl)
@@ -292,7 +291,29 @@ int UIEvent::pageY() const
return 0;
}
+int UIEvent::layerX() const
+{
+ if (!impl)
+ throw DOMException(DOMException::INVALID_STATE_ERR);
+
+ MouseEventImpl *mouseEvent = dynamic_cast<MouseEventImpl*>(impl);
+ if (mouseEvent)
+ return mouseEvent->layerX();
+ else
+ return 0;
+}
+int UIEvent::layerY() const
+{
+ if (!impl)
+ throw DOMException(DOMException::INVALID_STATE_ERR);
+
+ MouseEventImpl *mouseEvent = dynamic_cast<MouseEventImpl*>(impl);
+ if (mouseEvent)
+ return mouseEvent->layerY();
+ else
+ return 0;
+}
void UIEvent::initUIEvent(const DOMString &typeArg,
bool canBubbleArg,
diff --git a/WebCore/khtml/dom/dom2_events.h b/WebCore/khtml/dom/dom2_events.h
index c535b23..1687666 100644
--- a/WebCore/khtml/dom/dom2_events.h
+++ b/WebCore/khtml/dom/dom2_events.h
@@ -328,13 +328,20 @@ public:
int keyCode() const;
/**
- * Non-standard extensions to support Netscape-style pageX and pageY event property.
+ * Non-standard extensions to support Netscape-style pageX and pageY event properties.
*
*/
int pageX() const;
int pageY() const;
/**
+ * Non-standard extensions to support Netscape-style layerX and layerY event properties.
+ *
+ */
+ int layerX() const;
+ int layerY() const;
+
+ /**
* The initUIEvent method is used to initialize the value of a UIEvent
* created through the DocumentEvent interface. This method may only be
* called before the UIEvent has been dispatched via the dispatchEvent
diff --git a/WebCore/khtml/ecma/kjs_events.cpp b/WebCore/khtml/ecma/kjs_events.cpp
index 0f245fe..9d459bf 100644
--- a/WebCore/khtml/ecma/kjs_events.cpp
+++ b/WebCore/khtml/ecma/kjs_events.cpp
@@ -343,6 +343,8 @@ const ClassInfo DOMUIEvent::info = { "UIEvent", &DOMEvent::info, &DOMUIEventTabl
view DOMUIEvent::View DontDelete|ReadOnly
detail DOMUIEvent::Detail DontDelete|ReadOnly
keyCode DOMUIEvent::KeyCode DontDelete|ReadOnly
+ layerX DOMUIEvent::LayerX DontDelete|ReadOnly
+ layerY DOMUIEvent::LayerY DontDelete|ReadOnly
pageX DOMUIEvent::PageX DontDelete|ReadOnly
pageY DOMUIEvent::PageY DontDelete|ReadOnly
@end
@@ -372,6 +374,10 @@ Value DOMUIEvent::getValueProperty(ExecState *exec, int token) const
return Number(static_cast<DOM::UIEvent>(event).detail());
case KeyCode:
return Number(static_cast<DOM::UIEvent>(event).keyCode());
+ case LayerX:
+ return Number(static_cast<DOM::UIEvent>(event).layerX());
+ case LayerY:
+ return Number(static_cast<DOM::UIEvent>(event).layerY());
case PageX:
return Number(static_cast<DOM::UIEvent>(event).pageX());
case PageY:
diff --git a/WebCore/khtml/ecma/kjs_events.h b/WebCore/khtml/ecma/kjs_events.h
index c4e309b..9149d85 100644
--- a/WebCore/khtml/ecma/kjs_events.h
+++ b/WebCore/khtml/ecma/kjs_events.h
@@ -107,7 +107,7 @@ namespace KJS {
// no put - all read-only
virtual const ClassInfo* classInfo() const { return &info; }
static const ClassInfo info;
- enum { View, Detail, KeyCode, PageX, PageY, InitUIEvent };
+ enum { View, Detail, KeyCode, LayerX, LayerY, PageX, PageY, InitUIEvent };
DOM::UIEvent toUIEvent() const { return static_cast<DOM::UIEvent>(event); }
};
diff --git a/WebCore/khtml/ecma/kjs_events.lut.h b/WebCore/khtml/ecma/kjs_events.lut.h
index 7452dc5..8fc9997 100644
--- a/WebCore/khtml/ecma/kjs_events.lut.h
+++ b/WebCore/khtml/ecma/kjs_events.lut.h
@@ -76,11 +76,11 @@ const struct HashTable EventExceptionConstructorTable = { 2, 1, EventExceptionCo
namespace KJS {
const struct HashEntry DOMUIEventTableEntries[] = {
- { 0, 0, 0, 0, 0 },
+ { "layerY", DOMUIEvent::LayerY, DontDelete|ReadOnly, 0, 0 },
{ "pageX", DOMUIEvent::PageX, DontDelete|ReadOnly, 0, 0 },
{ "detail", DOMUIEvent::Detail, DontDelete|ReadOnly, 0, &DOMUIEventTableEntries[6] },
{ "view", DOMUIEvent::View, DontDelete|ReadOnly, 0, &DOMUIEventTableEntries[5] },
- { 0, 0, 0, 0, 0 },
+ { "layerX", DOMUIEvent::LayerX, DontDelete|ReadOnly, 0, 0 },
{ "keyCode", DOMUIEvent::KeyCode, DontDelete|ReadOnly, 0, 0 },
{ "pageY", DOMUIEvent::PageY, DontDelete|ReadOnly, 0, 0 }
};
diff --git a/WebCore/khtml/xml/dom2_eventsimpl.cpp b/WebCore/khtml/xml/dom2_eventsimpl.cpp
index 96b61f1..e5a469f 100644
--- a/WebCore/khtml/xml/dom2_eventsimpl.cpp
+++ b/WebCore/khtml/xml/dom2_eventsimpl.cpp
@@ -25,6 +25,9 @@
#include "xml/dom2_eventsimpl.h"
#include "xml/dom_stringimpl.h"
#include "xml/dom_nodeimpl.h"
+#include "xml/dom_docimpl.h"
+#include "rendering/render_object.h"
+#include "rendering/render_layer.h"
#include <kdebug.h>
@@ -405,6 +408,35 @@ MouseEventImpl::MouseEventImpl(EventId _id,
m_relatedTarget = relatedTargetArg;
if (m_relatedTarget)
m_relatedTarget->ref();
+ computeLayerPos();
+}
+
+void MouseEventImpl::computeLayerPos()
+{
+ m_layerX = m_clientX;
+ m_layerY = m_clientY;
+
+ DocumentImpl *doc = view()->document();
+
+ if (!doc) {
+ return;
+ }
+
+ khtml::RenderObject::NodeInfo renderInfo(true, false);
+ doc->renderer()->layer()->nodeAtPoint(renderInfo, m_clientX, m_clientY);
+
+ NodeImpl *node = renderInfo.innerNonSharedNode();
+ while (node && !node->renderer()) {
+ node = node->parent();
+ }
+
+ if (!node) {
+ return;
+ }
+
+ node->renderer()->enclosingLayer()->updateLayerPosition();
+ m_layerX -= node->renderer()->enclosingLayer()->xPos();
+ m_layerY -= node->renderer()->enclosingLayer()->yPos();
}
MouseEventImpl::~MouseEventImpl()
@@ -433,6 +465,16 @@ long MouseEventImpl::clientY() const
return m_clientY;
}
+long MouseEventImpl::layerX() const
+{
+ return m_layerX;
+}
+
+long MouseEventImpl::layerY() const
+{
+ return m_layerY;
+}
+
bool MouseEventImpl::ctrlKey() const
{
return m_ctrlKey;
@@ -496,6 +538,7 @@ void MouseEventImpl::initMouseEvent(const DOMString &typeArg,
m_relatedTarget = relatedTargetArg.handle();
if (m_relatedTarget)
m_relatedTarget->ref();
+ computeLayerPos();
}
//---------------------------------------------------------------------------------------------
diff --git a/WebCore/khtml/xml/dom2_eventsimpl.h b/WebCore/khtml/xml/dom2_eventsimpl.h
index a1585d3..3b30413 100644
--- a/WebCore/khtml/xml/dom2_eventsimpl.h
+++ b/WebCore/khtml/xml/dom2_eventsimpl.h
@@ -192,6 +192,8 @@ public:
long screenY() const;
long clientX() const;
long clientY() const;
+ long layerX() const;
+ long layerY() const;
bool ctrlKey() const;
bool shiftKey() const;
bool altKey() const;
@@ -220,12 +222,16 @@ protected:
long m_screenY;
long m_clientX;
long m_clientY;
+ long m_layerX;
+ long m_layerY;
bool m_ctrlKey;
bool m_altKey;
bool m_shiftKey;
bool m_metaKey;
unsigned short m_button;
NodeImpl *m_relatedTarget;
+ private:
+ void computeLayerPos();
};
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list