[webkit-changes] cvs commit: WebCore/khtml/rendering render_block.cpp

David hyatt at opensource.apple.com
Fri Nov 4 13:13:31 PST 2005


hyatt       05/11/04 13:13:31

  Modified:    .        ChangeLog
               khtml/rendering render_block.cpp
  Log:
  	Fix for bug 5626, ghosted float steals mouse events.  Make sure
  	that the floatRect() method deals with overflow.
  
          Reviewed by john
  
          * khtml/rendering/render_block.cpp:
          (khtml::RenderBlock::paint):
          (khtml::RenderBlock::floatRect):
          (khtml::RenderBlock::nodeAtPoint):
  
  Revision  Changes    Path
  1.338     +12 -0     WebCore/ChangeLog
  
  Index: ChangeLog
  ===================================================================
  RCS file: /cvs/root/WebCore/ChangeLog,v
  retrieving revision 1.337
  retrieving revision 1.338
  diff -u -r1.337 -r1.338
  --- ChangeLog	4 Nov 2005 21:02:38 -0000	1.337
  +++ ChangeLog	4 Nov 2005 21:13:29 -0000	1.338
  @@ -1,3 +1,15 @@
  +2005-11-04  David Hyatt  <hyatt at apple.com>
  +
  +	Fix for bug 5626, ghosted float steals mouse events.  Make sure
  +	that the floatRect() method deals with overflow.
  +	
  +        Reviewed by john
  +
  +        * khtml/rendering/render_block.cpp:
  +        (khtml::RenderBlock::paint):
  +        (khtml::RenderBlock::floatRect):
  +        (khtml::RenderBlock::nodeAtPoint):
  +
   2005-11-04  David Harrison  <harrison at apple.com>
   
           Reviewed by John Sullivan.
  
  
  
  1.214     +5 -1      WebCore/khtml/rendering/render_block.cpp
  
  Index: render_block.cpp
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/rendering/render_block.cpp,v
  retrieving revision 1.213
  retrieving revision 1.214
  diff -u -r1.213 -r1.214
  --- render_block.cpp	2 Nov 2005 08:52:45 -0000	1.213
  +++ render_block.cpp	4 Nov 2005 21:13:30 -0000	1.214
  @@ -1223,6 +1223,8 @@
           bool intersectsOverflowBox = overflowBox.intersects(i.r);
           if (!intersectsOverflowBox) {
               // Check floats next.
  +            if (i.phase != PaintActionFloat)
  +                return;
               QRect floatBox = floatRect();
               floatBox.inflate(maximalOutlineSize(i.phase));
               floatBox.setX(floatBox.x() + _tx);
  @@ -2042,7 +2044,7 @@
   QRect RenderBlock::floatRect() const
   {
       QRect result(borderBox());
  -    if (!m_floatingObjects)
  +    if (!m_floatingObjects || hasOverflowClip())
           return result;
       FloatingObject* r;
       QPtrListIterator<FloatingObject> it(*m_floatingObjects);
  @@ -2463,6 +2465,8 @@
           bool insideOverflowBox = overflowBox.contains(_x, _y);
           if (!insideOverflowBox) {
               // Check floats next.
  +            if (hitTestAction != HitTestFloat)
  +                return;
               QRect floatBox = floatRect();
               floatBox.setX(floatBox.x() + tx);
               floatBox.setY(floatBox.y() + ty);
  
  
  



More information about the webkit-changes mailing list