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

Reply via email to