WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Fixes coord transformation for deeply nested frames
frameset.patch (text/plain), 3.06 KB, created by
Adam Treat
on 2009-01-10 19:59:32 PST
(
hide
)
Description:
Fixes coord transformation for deeply nested frames
Filename:
MIME Type:
Creator:
Adam Treat
Created:
2009-01-10 19:59:32 PST
Size:
3.06 KB
patch
obsolete
>diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog >index f5253a0..95ab1a4 100644 >--- a/WebCore/ChangeLog >+++ b/WebCore/ChangeLog >@@ -1,3 +1,15 @@ >+2009-01-10 Adam Treat <adam.treat@torchmobile.com> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Correct coordinate transformation for deeply nested frames on resizing. This >+ fixes https://bugs.webkit.org/show_bug.cgi?id=20766. >+ >+ * rendering/RenderFrameSet.cpp: >+ (WebCore::RenderFrameSet::localPos): >+ (WebCore::RenderFrameSet::userResize): >+ * rendering/RenderFrameSet.h: >+ > 2009-01-08 Justin McPherson <justin.mcpherson@nokia.com> > > Reviewed by Simon Hausmann. >diff --git a/WebCore/rendering/RenderFrameSet.cpp b/WebCore/rendering/RenderFrameSet.cpp >index d93fa86..523adba 100644 >--- a/WebCore/rendering/RenderFrameSet.cpp >+++ b/WebCore/rendering/RenderFrameSet.cpp >@@ -558,14 +558,25 @@ void RenderFrameSet::continueResizing(GridAxis& axis, int position) > setNeedsLayout(true); > } > >+IntPoint RenderFrameSet::localPos(const IntPoint& point) const >+{ >+ IntPoint pos = IntPoint(point.x() + xPos(), point.y() + yPos()); >+ RenderObject* o = parent(); >+ if (!o || !o->isFrameSet()) >+ return pos; >+ >+ return static_cast<RenderFrameSet*>(o)->localPos(pos); >+} >+ > bool RenderFrameSet::userResize(MouseEvent* evt) > { > if (!m_isResizing) { > if (needsLayout()) > return false; > if (evt->type() == eventNames().mousedownEvent && evt->button() == LeftButton) { >- startResizing(m_cols, evt->pageX() - xPos()); >- startResizing(m_rows, evt->pageY() - yPos()); >+ IntPoint pos = localPos(); >+ startResizing(m_cols, evt->pageX() - pos.x()); >+ startResizing(m_rows, evt->pageY() - pos.y()); > if (m_cols.m_splitBeingResized != noSplit || m_rows.m_splitBeingResized != noSplit) { > setIsResizing(true); > return true; >@@ -573,8 +584,9 @@ bool RenderFrameSet::userResize(MouseEvent* evt) > } > } else { > if (evt->type() == eventNames().mousemoveEvent || (evt->type() == eventNames().mouseupEvent && evt->button() == LeftButton)) { >- continueResizing(m_cols, evt->pageX() - xPos()); >- continueResizing(m_rows, evt->pageY() - yPos()); >+ IntPoint pos = localPos(); >+ continueResizing(m_cols, evt->pageX() - pos.x()); >+ continueResizing(m_rows, evt->pageY() - pos.y()); > if (evt->type() == eventNames().mouseupEvent && evt->button() == LeftButton) { > setIsResizing(false); > return true; >diff --git a/WebCore/rendering/RenderFrameSet.h b/WebCore/rendering/RenderFrameSet.h >index 5401c1b..9e0719b 100644 >--- a/WebCore/rendering/RenderFrameSet.h >+++ b/WebCore/rendering/RenderFrameSet.h >@@ -110,6 +110,8 @@ private: > void paintRowBorder(const PaintInfo& paintInfo, const IntRect& rect); > void paintColumnBorder(const PaintInfo& paintInfo, const IntRect& rect); > >+ IntPoint localPos(const IntPoint& point = IntPoint()) const; >+ > GridAxis m_rows; > GridAxis m_cols; >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
darin
:
review-
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 20766
:
26597
|
26607
|
26617