[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677
rjw
rjw at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 06:39:34 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit d520973a3e6a9f61cc632ccf64c2832ed04e8874
Author: rjw <rjw at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue Sep 17 23:38:53 2002 +0000
* khtml/khtmlview.cpp:
(KHTMLView::viewportMouseTripleClickEvent):
Added implementation. Same as viewportMouseReleaseEvent
except dispatches additional MouseTripleClickEvent event.
(KHTMLView::viewportMouseDoubleClickEvent):
Send extra release event. This emulates Qt
behavior.
* kwq/WebCoreBridge.mm:
(-[WebCoreBridge mouseUp:]):
Don't send extra release event here, instead send
it in viewportMouseDoubleClickEvent and also in
viewportMouseTripleClickEvent so DOM doesn't get
confused.
* kwq/KWQColor.mm:
(QColor::hsv):
Fixed marklar divide by 0 problemn.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2078 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog-2002-12-03 b/WebCore/ChangeLog-2002-12-03
index b8e6ea1..a08cb4b 100644
--- a/WebCore/ChangeLog-2002-12-03
+++ b/WebCore/ChangeLog-2002-12-03
@@ -1,3 +1,26 @@
+2002-09-17 Richard Williamson <rjw at apple.com>
+
+ * khtml/khtmlview.cpp:
+ (KHTMLView::viewportMouseTripleClickEvent):
+ Added implementation. Same as viewportMouseReleaseEvent
+ except dispatches additional MouseTripleClickEvent event.
+
+ (KHTMLView::viewportMouseDoubleClickEvent):
+ Send extra release event. This emulates Qt
+ behavior.
+
+ * kwq/WebCoreBridge.mm:
+ (-[WebCoreBridge mouseUp:]):
+ Don't send extra release event here, instead send
+ it in viewportMouseDoubleClickEvent and also in
+ viewportMouseTripleClickEvent so DOM doesn't get
+ confused.
+
+ * kwq/KWQColor.mm:
+ (QColor::hsv):
+ Fixed marklar divide by 0 problemn.
+
+
2002-09-17 Darin Adler <darin at apple.com>
- fixed 2936933 -- Pages that claim to be UTF-8 but contain invalid
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index b8e6ea1..a08cb4b 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,26 @@
+2002-09-17 Richard Williamson <rjw at apple.com>
+
+ * khtml/khtmlview.cpp:
+ (KHTMLView::viewportMouseTripleClickEvent):
+ Added implementation. Same as viewportMouseReleaseEvent
+ except dispatches additional MouseTripleClickEvent event.
+
+ (KHTMLView::viewportMouseDoubleClickEvent):
+ Send extra release event. This emulates Qt
+ behavior.
+
+ * kwq/WebCoreBridge.mm:
+ (-[WebCoreBridge mouseUp:]):
+ Don't send extra release event here, instead send
+ it in viewportMouseDoubleClickEvent and also in
+ viewportMouseTripleClickEvent so DOM doesn't get
+ confused.
+
+ * kwq/KWQColor.mm:
+ (QColor::hsv):
+ Fixed marklar divide by 0 problemn.
+
+
2002-09-17 Darin Adler <darin at apple.com>
- fixed 2936933 -- Pages that claim to be UTF-8 but contain invalid
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index b8e6ea1..a08cb4b 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,26 @@
+2002-09-17 Richard Williamson <rjw at apple.com>
+
+ * khtml/khtmlview.cpp:
+ (KHTMLView::viewportMouseTripleClickEvent):
+ Added implementation. Same as viewportMouseReleaseEvent
+ except dispatches additional MouseTripleClickEvent event.
+
+ (KHTMLView::viewportMouseDoubleClickEvent):
+ Send extra release event. This emulates Qt
+ behavior.
+
+ * kwq/WebCoreBridge.mm:
+ (-[WebCoreBridge mouseUp:]):
+ Don't send extra release event here, instead send
+ it in viewportMouseDoubleClickEvent and also in
+ viewportMouseTripleClickEvent so DOM doesn't get
+ confused.
+
+ * kwq/KWQColor.mm:
+ (QColor::hsv):
+ Fixed marklar divide by 0 problemn.
+
+
2002-09-17 Darin Adler <darin at apple.com>
- fixed 2936933 -- Pages that claim to be UTF-8 but contain invalid
diff --git a/WebCore/khtml/khtmlview.cpp b/WebCore/khtml/khtmlview.cpp
index d77870b..c43a9c8 100644
--- a/WebCore/khtml/khtmlview.cpp
+++ b/WebCore/khtml/khtmlview.cpp
@@ -471,9 +471,39 @@ void KHTMLView::viewportMousePressEvent( QMouseEvent *_mouse )
}
}
+#ifdef APPLE_CHANGES
void KHTMLView::viewportMouseTripleClickEvent( QMouseEvent *_mouse )
{
+ if ( !m_part->xmlDocImpl() ) return;
+
+ int xm, ym;
+ viewportToContents(_mouse->x(), _mouse->y(), xm, ym);
+
+ //kdDebug( 6000 ) << "\nmouseReleaseEvent: x=" << xm << ", y=" << ym << endl;
+
+ DOM::NodeImpl::MouseEvent mev( _mouse->stateAfter(), DOM::NodeImpl::MouseRelease );
+ m_part->xmlDocImpl()->prepareMouseEvent( false, xm, ym, &mev );
+
+ bool swallowEvent = dispatchMouseEvent(EventImpl::MOUSEUP_EVENT,mev.innerNode.handle(),true,
+ d->clickCount,_mouse,false,DOM::NodeImpl::MouseRelease);
+
+ if (d->clickCount > 0 &&
+ QPoint(d->clickX-xm,d->clickY-ym).manhattanLength() <= QApplication::startDragDistance())
+ dispatchMouseEvent(EventImpl::CLICK_EVENT,mev.innerNode.handle(),true,
+ d->clickCount,_mouse,true,DOM::NodeImpl::MouseRelease);
+
+ if (mev.innerNode.handle())
+ mev.innerNode.handle()->setPressed(false);
+
+ if (!swallowEvent) {
+ khtml::MouseReleaseEvent event( _mouse, xm, ym, mev.url, mev.target, mev.innerNode );
+ QApplication::sendEvent( m_part, &event );
+
+ khtml::MouseTripleClickEvent event2( _mouse, xm, ym, mev.url, mev.target, mev.innerNode );
+ QApplication::sendEvent( m_part, &event2 );
+ }
}
+#endif
void KHTMLView::viewportMouseDoubleClickEvent( QMouseEvent *_mouse )
{
@@ -500,9 +530,13 @@ void KHTMLView::viewportMouseDoubleClickEvent( QMouseEvent *_mouse )
if (mev.innerNode.handle())
mev.innerNode.handle()->setPressed(false);
+ // Qt delivers a release event AND a double click event.
if (!swallowEvent) {
- khtml::MouseDoubleClickEvent event( _mouse, xm, ym, mev.url, mev.target, mev.innerNode );
- QApplication::sendEvent( m_part, &event );
+ khtml::MouseReleaseEvent event1( _mouse, xm, ym, mev.url, mev.target, mev.innerNode );
+ QApplication::sendEvent( m_part, &event1 );
+
+ khtml::MouseDoubleClickEvent event2( _mouse, xm, ym, mev.url, mev.target, mev.innerNode );
+ QApplication::sendEvent( m_part, &event2 );
}
#else
diff --git a/WebCore/kwq/KWQColor.mm b/WebCore/kwq/KWQColor.mm
index b655d1e..4d11f40 100644
--- a/WebCore/kwq/KWQColor.mm
+++ b/WebCore/kwq/KWQColor.mm
@@ -349,7 +349,10 @@ void QColor::hsv(int *h, int *s, int *v) const
f = (r == x) ? g - b : ((g == x) ? b - r : r - g);
i = (r == x) ? 3 : ((g == x) ? 5 : 1);
*h = i - f /(w - x);
- *s = (w - x)/w;
+ if (w != 0)
+ *s = (w - x)/w;
+ else
+ *s = 0;
*v = w;
}
}
diff --git a/WebCore/kwq/WebCoreBridge.mm b/WebCore/kwq/WebCoreBridge.mm
index 9fffebd..403b748 100644
--- a/WebCore/kwq/WebCoreBridge.mm
+++ b/WebCore/kwq/WebCoreBridge.mm
@@ -368,14 +368,23 @@ using khtml::RenderPart;
if (part->impl->view()) {
int clickCount = [event clickCount];
- // Qt documentation says you always get a release event before a double-click event.
- QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(p), button, state, clickCount);
- part->impl->view()->viewportMouseReleaseEvent(&releaseEvent);
-
+ // Our behavior here is a little different that Qt. Qt always sends
+ // a mouse release event, even for a double click. To correct problems
+ // in khtml's DOM click event handling we do not send a release here
+ // for a double click. Instead we send that event from khtmlview's
+ // viewportMouseDoubleClickEvent.
if (clickCount > 0 && clickCount % 2 == 0) {
QMouseEvent doubleClickEvent(QEvent::MouseButtonDblClick, QPoint(p), button, state, clickCount);
part->impl->view()->viewportMouseDoubleClickEvent(&doubleClickEvent);
}
+ else if (clickCount > 0 && clickCount % 3 == 0) {
+ QMouseEvent doubleClickEvent(QEvent::MouseButtonDblClick, QPoint(p), button, state, clickCount);
+ part->impl->view()->viewportMouseTripleClickEvent(&doubleClickEvent);
+ }
+ else {
+ QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(p), button, state, clickCount);
+ part->impl->view()->viewportMouseReleaseEvent(&releaseEvent);
+ }
}
}
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list