[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

hyatt hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 08:08:05 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 0897a2b8f28778f35cc100ca42b5ee567e881da5
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Oct 31 09:29:10 2003 +0000

    	Three simple fixes:
    
    	(1) Fix for 3463777, crash on CSS3 box model draft.  This was just a situation where a simple null-check
    	was needed for generated content.
    
    	(2) Added a != check when the old and new hover obj are the same to avoid a little bit of extra work.
    
    	(3) Removed the m_pressed member from DOM nodes and removed the calls to setPressed, since this code
    	is dead and not used by anyone.
    
            * khtml/khtmlview.cpp:
            * khtml/rendering/render_layer.cpp:
            (RenderLayer::addChild):
            (RenderLayer::updateHoverActiveState):
            * khtml/xml/dom_nodeimpl.cpp:
            (NodeImpl::NodeImpl):
            * khtml/xml/dom_nodeimpl.h:
            (DOM::NodeImpl::hasStyle):
            (DOM::NodeImpl::setHasStyle):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@5338 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 1feab33..756c2ed 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,25 @@
+2003-10-31  David Hyatt  <hyatt at apple.com>
+
+	Three simple fixes:
+	
+	(1) Fix for 3463777, crash on CSS3 box model draft.  This was just a situation where a simple null-check
+	was needed for generated content.
+
+	(2) Added a != check when the old and new hover obj are the same to avoid a little bit of extra work.
+
+	(3) Removed the m_pressed member from DOM nodes and removed the calls to setPressed, since this code
+	is dead and not used by anyone.
+	
+        * khtml/khtmlview.cpp:
+        * khtml/rendering/render_layer.cpp:
+        (RenderLayer::addChild):
+        (RenderLayer::updateHoverActiveState):
+        * khtml/xml/dom_nodeimpl.cpp:
+        (NodeImpl::NodeImpl):
+        * khtml/xml/dom_nodeimpl.h:
+        (DOM::NodeImpl::hasStyle):
+        (DOM::NodeImpl::setHasStyle):
+
 2003-10-30  David Hyatt  <hyatt at apple.com>
 
 	Fix for 3469330, the Marquee data in RenderStyle needs a copy constructor hack like all the other
diff --git a/WebCore/khtml/khtmlview.cpp b/WebCore/khtml/khtmlview.cpp
index 3685b1b..921f267 100644
--- a/WebCore/khtml/khtmlview.cpp
+++ b/WebCore/khtml/khtmlview.cpp
@@ -680,8 +680,6 @@ void KHTMLView::viewportMousePressEvent( QMouseEvent *_mouse )
 
     bool swallowEvent = dispatchMouseEvent(EventImpl::MOUSEDOWN_EVENT,mev.innerNode.handle(),true,
                                            d->clickCount,_mouse,true,DOM::NodeImpl::MousePress);
-    if (mev.innerNode.handle())
-	mev.innerNode.handle()->setPressed();
 
     if (!swallowEvent) {
 	khtml::MousePressEvent event( _mouse, xm, ym, mev.url, mev.target, mev.innerNode );
@@ -729,9 +727,6 @@ void KHTMLView::viewportMouseDoubleClickEvent( QMouseEvent *_mouse )
     dispatchMouseEvent(EventImpl::CLICK_EVENT,mev.innerNode.handle(),true,
 			   d->clickCount,_mouse,true,DOM::NodeImpl::MouseRelease);
 
-    if (mev.innerNode.handle())
-	mev.innerNode.handle()->setPressed(false);
-
     // Qt delivers a release event AND a double click event.
     if (!swallowEvent) {
 	khtml::MouseReleaseEvent event1( _mouse, xm, ym, mev.url, mev.target, mev.innerNode );
@@ -749,9 +744,6 @@ void KHTMLView::viewportMouseDoubleClickEvent( QMouseEvent *_mouse )
     bool swallowEvent = dispatchMouseEvent(EventImpl::MOUSEDOWN_EVENT,mev.innerNode.handle(),true,
                                            d->clickCount,_mouse,true,DOM::NodeImpl::MouseDblClick);
 
-    if (mev.innerNode.handle())
-	mev.innerNode.handle()->setPressed();
-
     if (!swallowEvent) {
 	khtml::MouseDoubleClickEvent event( _mouse, xm, ym, mev.url, mev.target, mev.innerNode );
 	QApplication::sendEvent( m_part, &event );
@@ -941,9 +933,6 @@ void KHTMLView::viewportMouseReleaseEvent( QMouseEvent * _mouse )
 	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 );
@@ -1022,7 +1011,6 @@ void KHTMLView::keyPressEvent( QKeyEvent *_ke )
         case Key_Enter:
         case Key_Return:
 	    // ### FIXME:
-	    // move this code to HTMLAnchorElementImpl::setPressed(false),
 	    // or even better to HTMLAnchorElementImpl::event()
             if (m_part->xmlDocImpl()) {
 		NodeImpl *n = m_part->xmlDocImpl()->focusNode();
diff --git a/WebCore/khtml/rendering/render_layer.cpp b/WebCore/khtml/rendering/render_layer.cpp
index 32070f4..78ab2a8 100644
--- a/WebCore/khtml/rendering/render_layer.cpp
+++ b/WebCore/khtml/rendering/render_layer.cpp
@@ -299,8 +299,12 @@ void RenderLayer::addChild(RenderLayer *child, RenderLayer* beforeChild)
    
     child->setParent(this);
 
-    // Dirty the z-order list in which we are contained.
-    child->stackingContext()->dirtyZOrderLists();
+    // Dirty the z-order list in which we are contained.  The stackingContext() can be null in the
+    // case where we're building up generated content layers.  This is ok, since the lists will start
+    // off dirty in that case anyway.
+    RenderLayer* stackingContext = child->stackingContext();
+    if (stackingContext)
+        stackingContext->dirtyZOrderLists();
 }
 
 RenderLayer* RenderLayer::removeChild(RenderLayer* oldChild)
@@ -1037,15 +1041,17 @@ void RenderLayer::updateHoverActiveState(RenderObject::NodeInfo& info)
     // Locate the common ancestor render object for the two renderers.
     RenderObject* ancestor = commonAncestor(oldHoverObj, newHoverObj);
     
-    // The old hover path only needs to be cleared up to (and not including) the common ancestor;
-    for (RenderObject* curr = oldHoverObj; curr && curr != ancestor; curr = hoverAncestor(curr)) {
-        curr->setMouseInside(false);
-        if (curr->element() && !curr->isText()) {
-            bool oldActive = curr->element()->active();
-            curr->element()->setActive(false);
-            if (curr->style()->affectedByHoverRules() ||
-                (curr->style()->affectedByActiveRules() && oldActive))
-                curr->element()->setChanged();
+    if (oldHoverObj != newHoverObj) {
+        // The old hover path only needs to be cleared up to (and not including) the common ancestor;
+        for (RenderObject* curr = oldHoverObj; curr && curr != ancestor; curr = hoverAncestor(curr)) {
+            curr->setMouseInside(false);
+            if (curr->element() && !curr->isText()) {
+                bool oldActive = curr->element()->active();
+                curr->element()->setActive(false);
+                if (curr->style()->affectedByHoverRules() ||
+                    (curr->style()->affectedByActiveRules() && oldActive))
+                    curr->element()->setChanged();
+            }
         }
     }
 
diff --git a/WebCore/khtml/xml/dom_nodeimpl.cpp b/WebCore/khtml/xml/dom_nodeimpl.cpp
index 299f484..ae793d0 100644
--- a/WebCore/khtml/xml/dom_nodeimpl.cpp
+++ b/WebCore/khtml/xml/dom_nodeimpl.cpp
@@ -59,7 +59,6 @@ NodeImpl::NodeImpl(DocumentPtr *doc)
       m_hasId( false ),
       m_hasClass( false ),
       m_hasStyle( false ),
-      m_pressed( false ),
       m_attached(false),
       m_changed( false ),
       m_hasChangedChild( false ),
diff --git a/WebCore/khtml/xml/dom_nodeimpl.h b/WebCore/khtml/xml/dom_nodeimpl.h
index 0cfcddd..d1e3acc 100644
--- a/WebCore/khtml/xml/dom_nodeimpl.h
+++ b/WebCore/khtml/xml/dom_nodeimpl.h
@@ -178,7 +178,6 @@ public:
     bool hasID() const      { return m_hasId; }
     bool hasClass() const   { return m_hasClass; }
     bool hasStyle() const   { return m_hasStyle; }
-    bool pressed() const    { return m_pressed; }
     bool active() const     { return m_active; }
     bool focused() const { return m_focused; }
     bool attached() const   { return m_attached; }
@@ -191,7 +190,6 @@ public:
     void setHasID(bool b=true) { m_hasId = b; }
     void setHasClass(bool b=true) { m_hasClass = b; }
     void setHasStyle(bool b=true) { m_hasStyle = b; }
-    void setPressed(bool b=true) { m_pressed = b; }
     void setHasChangedChild( bool b = true ) { m_hasChangedChild = b; }
     void setInDocument(bool b=true) { m_inDocument = b; }
     virtual void setFocus(bool b=true) { m_focused = b; }
@@ -384,7 +382,6 @@ protected:
     bool m_hasId : 1;
     bool m_hasClass : 1;
     bool m_hasStyle : 1;
-    bool m_pressed : 1;
     bool m_attached : 1;
     bool m_changed : 1;
     bool m_hasChangedChild : 1;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list