summaryrefslogtreecommitdiff
path: root/layout/generic
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2022-01-15 21:31:29 +0000
committerMoonchild <moonchild@palemoon.org>2022-01-15 21:31:29 +0000
commiteaad3dcc3bc8c3190953bab2435073c5056b4289 (patch)
tree58131cf108ecd06d19f159f8f3fd78d7dde2a1c0 /layout/generic
parent57171507b4f3723bfaf0f4469f80cb6ab08642ec (diff)
downloadaura-central-eaad3dcc3bc8c3190953bab2435073c5056b4289.tar.gz
Issue %3050 - Follow-up: extend attribution mapping to resize and corner
controls to allow themes to respond to scrollbar-width. Also clean up the comments and whitespace a bit.
Diffstat (limited to 'layout/generic')
-rw-r--r--layout/generic/nsGfxScrollFrame.cpp33
1 files changed, 31 insertions, 2 deletions
diff --git a/layout/generic/nsGfxScrollFrame.cpp b/layout/generic/nsGfxScrollFrame.cpp
index 8b76dc712..bbde1d7dc 100644
--- a/layout/generic/nsGfxScrollFrame.cpp
+++ b/layout/generic/nsGfxScrollFrame.cpp
@@ -4465,7 +4465,8 @@ ScrollFrameHelper::CreateAnonymousContent(
NS_LITERAL_STRING("horizontal"), false);
mHScrollbarContent->SetAttr(kNameSpaceID_None, nsGkAtoms::clickthrough,
NS_LITERAL_STRING("always"), false);
- // Map scrollbar-width to an attribute for browser themes.
+
+ // Map scrollbar-width to an attribute on horizontal scrollbars for browser themes.
if (scrollWidth == StyleScrollbarWidth::None) {
mHScrollbarContent->SetAttr(kNameSpaceID_None, nsGkAtoms::scrollbarwidth,
NS_LITERAL_STRING("none"), false);
@@ -4476,6 +4477,7 @@ ScrollFrameHelper::CreateAnonymousContent(
mHScrollbarContent->SetAttr(kNameSpaceID_None, nsGkAtoms::scrollbarwidth,
NS_LITERAL_STRING("auto"), false);
}
+
if (mIsRoot) {
mHScrollbarContent->SetAttr(kNameSpaceID_None, nsGkAtoms::root_,
NS_LITERAL_STRING("true"), false);
@@ -4499,7 +4501,8 @@ ScrollFrameHelper::CreateAnonymousContent(
NS_LITERAL_STRING("vertical"), false);
mVScrollbarContent->SetAttr(kNameSpaceID_None, nsGkAtoms::clickthrough,
NS_LITERAL_STRING("always"), false);
- // Map scrollbar-width to an attribute for browser themes.
+
+ // Map scrollbar-width to an attribute on vertical scrollbars for browser themes.
if (scrollWidth == StyleScrollbarWidth::None) {
mVScrollbarContent->SetAttr(kNameSpaceID_None, nsGkAtoms::scrollbarwidth,
NS_LITERAL_STRING("none"), false);
@@ -4510,6 +4513,7 @@ ScrollFrameHelper::CreateAnonymousContent(
mVScrollbarContent->SetAttr(kNameSpaceID_None, nsGkAtoms::scrollbarwidth,
NS_LITERAL_STRING("auto"), false);
}
+
if (mIsRoot) {
mVScrollbarContent->SetAttr(kNameSpaceID_None, nsGkAtoms::root_,
NS_LITERAL_STRING("true"), false);
@@ -4548,6 +4552,18 @@ ScrollFrameHelper::CreateAnonymousContent(
}
mResizerContent->SetAttr(kNameSpaceID_None, nsGkAtoms::dir, dir, false);
+ // Map scrollbar-width to an attribute on resizers for browser themes.
+ if (scrollWidth == StyleScrollbarWidth::None) {
+ mResizerContent->SetAttr(kNameSpaceID_None, nsGkAtoms::scrollbarwidth,
+ NS_LITERAL_STRING("none"), false);
+ } else if (scrollWidth == StyleScrollbarWidth::Thin) {
+ mResizerContent->SetAttr(kNameSpaceID_None, nsGkAtoms::scrollbarwidth,
+ NS_LITERAL_STRING("thin"), false);
+ } else {
+ mResizerContent->SetAttr(kNameSpaceID_None, nsGkAtoms::scrollbarwidth,
+ NS_LITERAL_STRING("auto"), false);
+ }
+
if (mIsRoot) {
nsIContent* browserRoot = GetBrowserRoot(mOuter->GetContent());
mCollapsedResizer = !(browserRoot &&
@@ -4570,6 +4586,19 @@ ScrollFrameHelper::CreateAnonymousContent(
kNameSpaceID_XUL,
nsIDOMNode::ELEMENT_NODE);
NS_TrustedNewXULElement(getter_AddRefs(mScrollCornerContent), nodeInfo.forget());
+
+ // Map scrollbar-width to an attribute on scrollcorners for browser themes.
+ if (scrollWidth == StyleScrollbarWidth::None) {
+ mScrollCornerContent->SetAttr(kNameSpaceID_None, nsGkAtoms::scrollbarwidth,
+ NS_LITERAL_STRING("none"), false);
+ } else if (scrollWidth == StyleScrollbarWidth::Thin) {
+ mScrollCornerContent->SetAttr(kNameSpaceID_None, nsGkAtoms::scrollbarwidth,
+ NS_LITERAL_STRING("thin"), false);
+ } else {
+ mScrollCornerContent->SetAttr(kNameSpaceID_None, nsGkAtoms::scrollbarwidth,
+ NS_LITERAL_STRING("auto"), false);
+ }
+
if (!aElements.AppendElement(mScrollCornerContent))
return NS_ERROR_OUT_OF_MEMORY;
}