Title: [128142] trunk/Source/WebKit/blackberry
- Revision
- 128142
- Author
- [email protected]
- Date
- 2012-09-10 20:19:50 -0700 (Mon, 10 Sep 2012)
Log Message
[BlackBerry] add a way to overscroll non-overflown content
https://bugs.webkit.org/show_bug.cgi?id=96331
[UxD] Vertical lists should always be scrollable
PR #195305
Reviewed by Yong Li.
Patch by Antonio Gomes <[email protected]>
Internally reviewed by Gen Mak.
Check if the RenderLayer is composited / hardware acceleratable prior to
check if its contents overflows. If that is the case, check if
our custom data-blackberry-force-overscroll is present.
That makes it possible for us to align to UX requirements: settings
and CCM panels should be always scrollable.
* Api/InRegionScroller.cpp:
(BlackBerry::WebKit::canScrollRenderBox):
* WebKitSupport/InRegionScrollableArea.cpp:
(BlackBerry::WebKit::InRegionScrollableArea::InRegionScrollableArea):
Modified Paths
Diff
Modified: trunk/Source/WebKit/blackberry/Api/InRegionScroller.cpp (128141 => 128142)
--- trunk/Source/WebKit/blackberry/Api/InRegionScroller.cpp 2012-09-11 03:02:46 UTC (rev 128141)
+++ trunk/Source/WebKit/blackberry/Api/InRegionScroller.cpp 2012-09-11 03:19:50 UTC (rev 128142)
@@ -362,9 +362,23 @@
// FIXME: Fix RenderBox::canBeScrolledAndHasScrollableArea method instead.
static bool canScrollRenderBox(RenderBox* box)
{
- if (!box || !box->hasOverflowClip())
+ if (!box)
return false;
+ // We use this to make non-overflown contents layers to actually
+ // be overscrollable.
+ if (box->layer() && box->layer()->usesCompositedScrolling()
+ && box->layer()->enclosingElement() && box->layer()->enclosingElement()->isElementNode()) {
+ DEFINE_STATIC_LOCAL(QualifiedName, forceOverscrollAttr, (nullAtom, "data-blackberry-force-overscroll", nullAtom));
+
+ Element* element = static_cast<Element*>(box->layer()->enclosingElement());
+ if (element->fastHasAttribute(forceOverscrollAttr))
+ return true;
+ }
+
+ if (!box->hasOverflowClip())
+ return false;
+
if (box->scrollsOverflowX() && (box->scrollWidth() != box->clientWidth())
|| box->scrollsOverflowY() && (box->scrollHeight() != box->clientHeight()))
return true;
Modified: trunk/Source/WebKit/blackberry/ChangeLog (128141 => 128142)
--- trunk/Source/WebKit/blackberry/ChangeLog 2012-09-11 03:02:46 UTC (rev 128141)
+++ trunk/Source/WebKit/blackberry/ChangeLog 2012-09-11 03:19:50 UTC (rev 128142)
@@ -1,3 +1,25 @@
+2012-09-10 Antonio Gomes <[email protected]>
+
+ [BlackBerry] add a way to overscroll non-overflown content
+ https://bugs.webkit.org/show_bug.cgi?id=96331
+ [UxD] Vertical lists should always be scrollable
+ PR #195305
+
+ Reviewed by Yong Li.
+ Internally reviewed by Gen Mak.
+
+ Check if the RenderLayer is composited / hardware acceleratable prior to
+ check if its contents overflows. If that is the case, check if
+ our custom data-blackberry-force-overscroll is present.
+
+ That makes it possible for us to align to UX requirements: settings
+ and CCM panels should be always scrollable.
+
+ * Api/InRegionScroller.cpp:
+ (BlackBerry::WebKit::canScrollRenderBox):
+ * WebKitSupport/InRegionScrollableArea.cpp:
+ (BlackBerry::WebKit::InRegionScrollableArea::InRegionScrollableArea):
+
2012-09-10 Genevieve Mak <[email protected]>
Change -data-blackberry-webworks-context to -data-webworks-context
Modified: trunk/Source/WebKit/blackberry/WebKitSupport/InRegionScrollableArea.cpp (128141 => 128142)
--- trunk/Source/WebKit/blackberry/WebKitSupport/InRegionScrollableArea.cpp 2012-09-11 03:02:46 UTC (rev 128141)
+++ trunk/Source/WebKit/blackberry/WebKitSupport/InRegionScrollableArea.cpp 2012-09-11 03:19:50 UTC (rev 128142)
@@ -94,6 +94,7 @@
// Both caches below are self-exclusive.
if (m_layer->usesCompositedScrolling()) {
+ m_forceContentToBeVerticallyScrollable = true;
m_supportsCompositedScrolling = true;
ASSERT(m_layer->backing()->hasScrollingLayer());
m_camouflagedCompositedScrollableLayer = reinterpret_cast<unsigned>(m_layer->backing()->scrollingContentsLayer()->platformLayer());
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes