Title: [131912] trunk/Source/WebKit/blackberry
- Revision
- 131912
- Author
- mifen...@rim.com
- Date
- 2012-10-19 10:08:28 -0700 (Fri, 19 Oct 2012)
Log Message
[BlackBerry] Don't attempt to auto scroll on input for Fixed Position elements.
https://bugs.webkit.org/show_bug.cgi?id=99833
Reviewed by Antonio Gomes.
PR 195024.
Don't attempt to scroll fixed position elements.
Reviewed Internally by Arvid Nilsson.
* WebKitSupport/DOMSupport.cpp:
(BlackBerry::WebKit::DOMSupport::isFixedPositionOrHasFixedPositionAncestor):
(DOMSupport):
* WebKitSupport/DOMSupport.h:
(WebCore):
* WebKitSupport/InputHandler.cpp:
(BlackBerry::WebKit::InputHandler::ensureFocusTextElementVisible):
Modified Paths
Diff
Modified: trunk/Source/WebKit/blackberry/ChangeLog (131911 => 131912)
--- trunk/Source/WebKit/blackberry/ChangeLog 2012-10-19 17:08:10 UTC (rev 131911)
+++ trunk/Source/WebKit/blackberry/ChangeLog 2012-10-19 17:08:28 UTC (rev 131912)
@@ -1,3 +1,24 @@
+2012-10-19 Mike Fenton <mifen...@rim.com>
+
+ [BlackBerry] Don't attempt to auto scroll on input for Fixed Position elements.
+ https://bugs.webkit.org/show_bug.cgi?id=99833
+
+ Reviewed by Antonio Gomes.
+
+ PR 195024.
+
+ Don't attempt to scroll fixed position elements.
+
+ Reviewed Internally by Arvid Nilsson.
+
+ * WebKitSupport/DOMSupport.cpp:
+ (BlackBerry::WebKit::DOMSupport::isFixedPositionOrHasFixedPositionAncestor):
+ (DOMSupport):
+ * WebKitSupport/DOMSupport.h:
+ (WebCore):
+ * WebKitSupport/InputHandler.cpp:
+ (BlackBerry::WebKit::InputHandler::ensureFocusTextElementVisible):
+
2012-10-18 Jacky Jiang <zhaji...@rim.com>
[BlackBerry] Page viewport aspect ratio not kept on navigating back
Modified: trunk/Source/WebKit/blackberry/WebKitSupport/DOMSupport.cpp (131911 => 131912)
--- trunk/Source/WebKit/blackberry/WebKitSupport/DOMSupport.cpp 2012-10-19 17:08:10 UTC (rev 131911)
+++ trunk/Source/WebKit/blackberry/WebKitSupport/DOMSupport.cpp 2012-10-19 17:08:28 UTC (rev 131912)
@@ -563,6 +563,20 @@
return false;
}
+bool isFixedPositionOrHasFixedPositionAncestor(RenderObject* renderer)
+{
+ RenderObject* currentRenderer = renderer;
+ while (currentRenderer) {
+
+ if (currentRenderer->isOutOfFlowPositioned() && currentRenderer->style()->position() == FixedPosition)
+ return true;
+
+ currentRenderer = currentRenderer->parent();
+ }
+
+ return false;
+}
+
} // DOMSupport
} // WebKit
} // BlackBerry
Modified: trunk/Source/WebKit/blackberry/WebKitSupport/DOMSupport.h (131911 => 131912)
--- trunk/Source/WebKit/blackberry/WebKitSupport/DOMSupport.h 2012-10-19 17:08:10 UTC (rev 131911)
+++ trunk/Source/WebKit/blackberry/WebKitSupport/DOMSupport.h 2012-10-19 17:08:28 UTC (rev 131912)
@@ -38,6 +38,7 @@
class Position;
class QualifiedName;
class Range;
+class RenderObject;
class VisiblePosition;
class VisibleSelection;
}
@@ -96,6 +97,8 @@
PassRefPtr<WebCore::Range> trimWhitespaceFromRange(WebCore::VisiblePosition startPosition, WebCore::VisiblePosition endPosition);
bool isEmptyRangeOrAllSpaces(WebCore::VisiblePosition, WebCore::VisiblePosition);
+bool isFixedPositionOrHasFixedPositionAncestor(WebCore::RenderObject*);
+
} // DOMSupport
} // WebKit
} // BlackBerry
Modified: trunk/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp (131911 => 131912)
--- trunk/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp 2012-10-19 17:08:10 UTC (rev 131911)
+++ trunk/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp 2012-10-19 17:08:28 UTC (rev 131912)
@@ -1036,6 +1036,10 @@
if (!(Platform::Settings::instance()->allowedScrollAdjustmentForInputFields() & scrollType))
return;
+ // Fixed position elements cannot be scrolled into view.
+ if (DOMSupport::isFixedPositionOrHasFixedPositionAncestor(m_currentFocusElement->renderer()))
+ return;
+
Frame* elementFrame = m_currentFocusElement->document()->frame();
if (!elementFrame)
return;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes