@ -242,22 +242,12 @@ BackgroundProperties{
id: shadowsSvgItem
width: root . isVertical ? background . thickness + totals.shadowsThickness : totals . visualLength
height: root . isVertical ? totals.visualLength : background . thickness + totals . shadowsThickness
enabledBorders: latteView && latteView . effects ? latteView.effects.enabledBorders : PlasmaCore . FrameSvg . NoBorder
imagePath: "widgets/panel-background"
prefix: "shadow"
opacity: hideShadow || ! root . useThemePanel || ( root . forceTransparentPanel && ! root . forcePanelForBusyBackground ) ? 0 : 1
visible: ( opacity == 0 ) ? false : true
opacity: {
if ( ( root . forceTransparentPanel && ! root . forcePanelForBusyBackground )
|| ! root . useThemePanel )
return 0 ;
else
return 1 ;
}
enabledBorders: latteView && latteView . effects && ! hideShadow ? latteView.effects.enabledBorders : PlasmaCore . FrameSvg . NoBorder
/ / ! s e t t r u e b y d e f a u l t i n o r d e r t o a v o i d c r a s h o n s t a r t u p b e c a u s e i m a g e P a t h i s s e t t o " "
readonly property bool themeHasShadow: themeExtended ? themeExtended.hasShadow : true
@ -287,305 +277,306 @@ BackgroundProperties{
enabled: ! LatteCore . WindowSystem . compositingActive
NumberAnimation { duration: 0 }
}
}
/ / ! L a y e r 2 : P r o v i d e v i s u a l s o l i d n e s s . P l a s m a t h e m e s b y d e s i g n m a y p r o v i d e a p a n e l - b a c k g r o u n d s v g t h a t i s n o t
/ / ! s o l i d . T h a t m e a n s t h a t u s e r c a n n o t g a i n f u l l s o l i d n e s s i n s u c h c a s e s . T h i s l a y e r i s r e s p o n s i b l e
/ / ! t o s o l v e t h e p r e v i o u s m e n t i o n e d p l a s m a t h e m e l i m i t a t i o n .
Colorizer . CustomBackground {
id: backgroundLowestRectangle
anchors.fill: solidBackground
opacity: normalizedOpacity
backgroundColor: colorizerManager . backgroundColor
roundness: overlayedBackground . roundness
visible: LatteCore . WindowSystem . compositingActive && solidBackground . exceedsThemeOpacityLimits
/ / ! L a y e r 2 : P r o v i d e v i s u a l s o l i d n e s s . P l a s m a t h e m e s b y d e s i g n m a y p r o v i d e a p a n e l - b a c k g r o u n d s v g t h a t i s n o t
/ / ! s o l i d . T h a t m e a n s t h a t u s e r c a n n o t g a i n f u l l s o l i d n e s s i n s u c h c a s e s . T h i s l a y e r i s r e s p o n s i b l e
/ / ! t o s o l v e t h e p r e v i o u s m e n t i o n e d p l a s m a t h e m e l i m i t a t i o n .
Colorizer . CustomBackground {
id: backgroundLowestRectangle
anchors.fill: solidBackground
opacity: normalizedOpacity
backgroundColor: colorizerManager . backgroundColor
roundness: overlayedBackground . roundness
visible: LatteCore . WindowSystem . compositingActive && solidBackground . exceedsThemeOpacityLimits
readonly property real normalizedOpacity: visible ? Math . min ( 1 , ( appliedOpacity - solidBackground . themeMaxOpacity ) / ( 1 - solidBackground . themeMaxOpacity ) ) : 0
readonly property real appliedOpacity: visible ? solidBackground.appliedOpacity : 0
readonly property real normalizedOpacity: visible ? Math . min ( 1 , ( appliedOpacity - solidBackground . themeMaxOpacity ) / ( 1 - solidBackground . themeMaxOpacity ) ) : 0
readonly property real appliedOpacity: visible ? solidBackground.appliedOpacity : 0
Behavior on opacity {
enabled: LatteCore . WindowSystem . compositingActive
NumberAnimation { duration: barLine . animationTime }
}
Behavior on opacity {
enabled: LatteCore . WindowSystem . compositingActive
NumberAnimation { duration: barLine . animationTime }
}
Behavior on opacity {
enabled: ! LatteCore . WindowSystem . compositingActive
NumberAnimation { duration: 0 }
}
Behavior on opacity {
enabled: ! LatteCore . WindowSystem . compositingActive
NumberAnimation { duration: 0 }
}
}
/ / ! L a y e r 3 : O r i g i n a l P l a s m a T h e m e " p a n e l - b a c k g r o u n d " s v g . I t i s u s e d f o r c a l c u l a t i o n s a n d a l s o t o d r a w
/ / ! t h e o r i g i n a l b a c k g r o u n d w h e n t o s p e c i a l s e t t i n g s a n d o p t i o n s e x i s t f r o m t h e u s e r . I t i s a l s o
/ / ! d o i n g o n e v e r y i m p o r t a n t j o b w h i c h i s t o c a l c u l a t e t h e E f f e c t s R e c t a n g l e w h i c h i s u s e d f r o m
/ / ! t h e c o m p o s i t o r t o p r o v i d e b l u r r i n e s s a n d f r o m M a s k c a l c u l a t i o n s t o p r o v i d e t h e V i e w L o c a l G e o m e t r y
PlasmaCore . FrameSvgItem {
id: solidBackground
anchors.leftMargin: LatteCore . WindowSystem . compositingActive ? shadows.left : 0
anchors.rightMargin: LatteCore . WindowSystem . compositingActive ? shadows.right : 0
anchors.topMargin: LatteCore . WindowSystem . compositingActive ? shadows.top : 0
anchors.bottomMargin: LatteCore . WindowSystem . compositingActive ? shadows.bottom : 0
anchors.fill: parent
/ / ! L a y e r 3 : O r i g i n a l P l a s m a T h e m e " p a n e l - b a c k g r o u n d " s v g . I t i s u s e d f o r c a l c u l a t i o n s a n d a l s o t o d r a w
/ / ! t h e o r i g i n a l b a c k g r o u n d w h e n t o s p e c i a l s e t t i n g s a n d o p t i o n s e x i s t f r o m t h e u s e r . I t i s a l s o
/ / ! d o i n g o n e v e r y i m p o r t a n t j o b w h i c h i s t o c a l c u l a t e t h e E f f e c t s R e c t a n g l e w h i c h i s u s e d f r o m
/ / ! t h e c o m p o s i t o r t o p r o v i d e b l u r r i n e s s a n d f r o m M a s k c a l c u l a t i o n s t o p r o v i d e t h e V i e w L o c a l G e o m e t r y
PlasmaCore . FrameSvgItem {
id: solidBackground
anchors.leftMargin: LatteCore . WindowSystem . compositingActive ? shadows.left : 0
anchors.rightMargin: LatteCore . WindowSystem . compositingActive ? shadows.right : 0
anchors.topMargin: LatteCore . WindowSystem . compositingActive ? shadows.top : 0
anchors.bottomMargin: LatteCore . WindowSystem . compositingActive ? shadows.bottom : 0
anchors.fill: shadowsSvgItem
opacity: normalizedOpacity
opacity: normalizedOpacity
readonly property bool exceedsThemeOpacityLimits: appliedOpacity > themeMaxOpacity
readonly property bool forceSolidness: root . forceSolidPanel || ! LatteCore . WindowSystem . compositingActive
readonly property bool exceedsThemeOpacityLimits: appliedOpacity > themeMaxOpacity
readonly property bool forceSolidness: root . forceSolidPanel || ! LatteCore . WindowSystem . compositingActive
/ / ! m u s t b e n o r m a l i z e d t o p l a s m a t h e m e m a x i m u m o p a c i t y
readonly property real normalizedOpacity: Math . min ( 1 , appliedOpacity / themeMaxOpacity )
/ / ! m u s t b e n o r m a l i z e d t o p l a s m a t h e m e m a x i m u m o p a c i t y
readonly property real normalizedOpacity: Math . min ( 1 , appliedOpacity / themeMaxOpacity )
readonly property real appliedOpacity: overlayedBackground . backgroundOpacity > 0 && ! paintInstantly ? 0 : overlayedBackground . midOpacity
readonly property real themeMaxOpacity: themeExtendedBackground ? themeExtendedBackground.maxOpacity : 1
readonly property real appliedOpacity: overlayedBackground . backgroundOpacity > 0 && ! paintInstantly ? 0 : overlayedBackground . midOpacity
readonly property real themeMaxOpacity: themeExtendedBackground ? themeExtendedBackground.maxOpacity : 1
/ / ! W h e n s w i t c h i n g f r o m o v e r l a i e d b a c k g r o u n d t o r e g u l a r o n e t h i s m u s t b e d o n e
/ / ! i n s t a n t l y o t h e r w i s e t h e t r a n s i t i o n i s n o t s m o o t h
readonly property bool paintInstantly: ( root . hasExpandedApplet && root . plasmaBackgroundForPopups )
|| root . plasmaStyleBusyForTouchingBusyVerticalView
/ / ! W h e n s w i t c h i n g f r o m o v e r l a i e d b a c k g r o u n d t o r e g u l a r o n e t h i s m u s t b e d o n e
/ / ! i n s t a n t l y o t h e r w i s e t h e t r a n s i t i o n i s n o t s m o o t h
readonly property bool paintInstantly: ( root . hasExpandedApplet && root . plasmaBackgroundForPopups )
|| root . plasmaStyleBusyForTouchingBusyVerticalView
property rect efGeometry: Qt . rect ( - 1 , - 1 , 0 , 0 )
property rect efGeometry: Qt . rect ( - 1 , - 1 , 0 , 0 )
imagePath: "widgets/panel-background"
imagePath: "widgets/panel-background"
property int paddingsWidth: margins . left + margins . right
property int paddingsHeight: margins . top + margins . bottom
property int paddingsWidth: margins . left + margins . right
property int paddingsHeight: margins . top + margins . bottom
onWidthChanged: updateEffectsArea ( ) ;
onHeightChanged: updateEffectsArea ( ) ;
onImagePathChanged: solidBackground . adjustPrefix ( ) ;
onWidthChanged: updateEffectsArea ( ) ;
onHeightChanged: updateEffectsArea ( ) ;
onImagePathChanged: solidBackground . adjustPrefix ( ) ;
Component.onCompleted: {
root . updateEffectsArea . connect ( updateEffectsArea ) ;
adjustPrefix ( ) ;
}
Component.onCompleted: {
root . updateEffectsArea . connect ( updateEffectsArea ) ;
adjustPrefix ( ) ;
}
Component.onDestruction: {
root . updateEffectsArea . disconnect ( updateEffectsArea ) ;
}
Component.onDestruction: {
root . updateEffectsArea . disconnect ( updateEffectsArea ) ;
}
/ / ! F i x f o r F r a m e S v g I t e m Q M L v e r s i o n n o t u p d a t i n g i t s m a r g i n s a f t e r a t h e m e c h a n g e
/ / ! w i t h t h i s h a c k w e e n f o r c e s u c h u p d a t e . I c o u l d u s e t h e r e p a i n t N e e d e d s i g n a l b u t
/ / ! i t i s c a l l e d m o r e o f t e n t h a n t h e t h e m e C h a n g e d o n e .
Connections {
target: themeExtended
onThemeChanged: {
solidBackground . adjustPrefix ( ) ;
plasmoid . configuration . panelShadows = ! plasmoid . configuration . panelShadows ;
plasmoid . configuration . panelShadows = ! plasmoid . configuration . panelShadows ;
updateEffectsArea ( ) ;
}
/ / ! F i x f o r F r a m e S v g I t e m Q M L v e r s i o n n o t u p d a t i n g i t s m a r g i n s a f t e r a t h e m e c h a n g e
/ / ! w i t h t h i s h a c k w e e n f o r c e s u c h u p d a t e . I c o u l d u s e t h e r e p a i n t N e e d e d s i g n a l b u t
/ / ! i t i s c a l l e d m o r e o f t e n t h a n t h e t h e m e C h a n g e d o n e .
Connections {
target: themeExtended
onThemeChanged: {
solidBackground . adjustPrefix ( ) ;
plasmoid . configuration . panelShadows = ! plasmoid . configuration . panelShadows ;
plasmoid . configuration . panelShadows = ! plasmoid . configuration . panelShadows ;
updateEffectsArea ( ) ;
}
}
Connections {
target: latteView ? latteView.visibility : null
onIsHiddenChanged: solidBackground . updateEffectsArea ( ) ;
}
Connections {
target: latteView ? latteView.visibility : null
onIsHiddenChanged: solidBackground . updateEffectsArea ( ) ;
}
Connections {
target: plasmoid
onLocationChanged: solidBackground . adjustPrefix ( ) ;
}
Connections {
target: plasmoid
onLocationChanged: solidBackground . adjustPrefix ( ) ;
}
function updateEffectsArea ( ) {
if ( ! updateEffectsAreaTimer . running ) {
invUpdateEffectsArea ( ) ;
updateEffectsAreaTimer . start ( ) ;
}
function updateEffectsArea ( ) {
if ( ! updateEffectsAreaTimer . running ) {
invUpdateEffectsArea ( ) ;
updateEffectsAreaTimer . start ( ) ;
}
}
function invUpdateEffectsArea ( ) {
if ( ! latteView )
return ;
if ( ! LatteCore . WindowSystem . compositingActive ) {
/ / ! N O C O M P O S I T I N G m o d e i s a s p e c i a l c a s e a n d E f f e c t s A r e a i s a l s o u s e d f o r
/ / ! d i f f e r e n t c a l c u l a t i o n s f o r V i e w : : m a s k ( )
var rootGeometry = mapToItem ( root , 0 , 0 ) ;
efGeometry . x = rootGeometry . x ;
efGeometry . y = rootGeometry . y ;
efGeometry . width = width ;
efGeometry . height = height ;
function invUpdateEffectsArea ( ) {
if ( ! latteView )
return ;
if ( ! LatteCore . WindowSystem . compositingActive ) {
/ / ! N O C O M P O S I T I N G m o d e i s a s p e c i a l c a s e a n d E f f e c t s A r e a i s a l s o u s e d f o r
/ / ! d i f f e r e n t c a l c u l a t i o n s f o r V i e w : : m a s k ( )
var rootGeometry = mapToItem ( root , 0 , 0 ) ;
efGeometry . x = rootGeometry . x ;
efGeometry . y = rootGeometry . y ;
efGeometry . width = width ;
efGeometry . height = height ;
} else {
if ( latteView . visibility . isHidden ) {
/ / ! v a l i d h i d e m a s k
efGeometry . x = - 1 ;
efGeometry . y = - 1 ;
efGeometry . width = 1 ;
efGeometry . height = 1 ;
} else {
if ( latteView . visibility . isHidden ) {
/ / ! v a l i d h i d e m a s k
efGeometry . x = - 1 ;
efGeometry . y = - 1 ;
efGeometry . width = 1 ;
efGeometry . height = 1 ;
if ( ! root . behaveAsPlasmaPanel ) {
var rootGeometry = mapToItem ( root , 0 , 0 ) ;
efGeometry . x = rootGeometry . x ;
efGeometry . y = rootGeometry . y ;
} else {
if ( ! root . behaveAsPlasmaPanel ) {
var rootGeometry = mapToItem ( root , 0 , 0 ) ;
efGeometry . x = rootGeometry . x ;
efGeometry . y = rootGeometry . y ;
} else {
efGeometry . x = 0 ;
efGeometry . y = 0 ;
}
efGeometry . width = width ;
efGeometry . height = height ;
efGeometry . x = 0 ;
efGeometry . y = 0 ;
}
}
latteView . effects . rect = efGeometry ;
/ / ! n e e d e d b o t h f o r N O C O M P O S I T I N G e n v i r o n m e n t s A N D
/ / ! V i e w : : l o c a l G e o m e t r y c a l c u l a t i o n s
visibilityManager . updateMaskArea ( ) ;
}
Timer {
id: updateEffectsAreaTimer
interval: 16 / / ! 6 0 H z o r 6 0 c a l l s / s e c
onTriggered: solidBackground . invUpdateEffectsArea ( ) ;
efGeometry . width = width ;
efGeometry . height = height ;
}
}
onRepaintNeeded: {
if ( root . behaveAsPlasmaPanel )
adjustPrefix ( ) ;
}
latteView . effects . rect = efGeometry ;
enabledBorders: latteView && latteView . effects ? latteView.effects.enabledBorders : PlasmaCore . FrameSvg . NoBorder
/ / ! n e e d e d b o t h f o r N O C O M P O S I T I N G e n v i r o n m e n t s A N D
/ / ! V i e w : : l o c a l G e o m e t r y c a l c u l a t i o n s
visibilityManager . updateMaskArea ( ) ;
}
Behavior on opacity {
enabled: LatteCore . WindowSystem . compositingActive && ! solidBackground . paintInstantly
NumberAnimation { duration: barLine . animationTime }
}
Timer {
id: updateEffectsAreaTimer
interval: 16 / / ! 6 0 H z o r 6 0 c a l l s / s e c
onTriggered: solidBackground . invUpdateEffectsArea ( ) ;
}
Behavior on opacity {
enabled: ! LatteCore . WindowSystem . compositingActive
NumberAnimation { duration: 0 }
}
onRepaintNeeded: {
if ( root . behaveAsPlasmaPanel )
adjustPrefix( ) ;
}
function adjustPrefix ( ) {
if ( ! plasmoid ) {
return "" ;
}
var pre ;
switch ( plasmoid . location ) {
case PlasmaCore.Types.LeftEdge:
pre = "west" ;
break ;
case PlasmaCore.Types.TopEdge:
pre = "north" ;
break ;
case PlasmaCore.Types.RightEdge:
pre = "east" ;
break ;
case PlasmaCore.Types.BottomEdge:
pre = "south" ;
break ;
default:
prefix = "" ;
}
enabledBorders: latteView && latteView . effects ? latteView.effects.enabledBorders : PlasmaCore . FrameSvg . NoBorder
prefix = [ pre , "" ] ;
}
Behavior on opacity {
enabled: LatteCore . WindowSystem . compositingActive && ! solidBackground . paintInstantly
NumberAnimation { duration: barLine . animationTime }
}
/ / ! L a y e r 4 : P l a s m a t h e m e d e s i g n d o e s n o t p r o v i d e a w a y t o c o l o r i z e t h e b a c k g r o u n d . T h i s l a y e r
/ / ! s o l v e s t h i s b y p r o v i d i n g a c u s t o m b a c k g r o u n d l a y e r t h a t r e s p e c t s t h e C o l o r i z e r p a l e t t e
Colorizer . CustomBackground {
id: overlayedBackground
anchors.fill: solidBackground
Behavior on opacity {
enabled: ! LatteCore . WindowSystem . compositingActive
NumberAnimation { duration: 0 }
}
readonly property bool busyBackground: root . forcePanelForBusyBackground
&& ( solidBackground . opacity === 0 || ! solidBackground . paintInstantly )
readonly property bool coloredView: colorizerManager . mustBeShown && colorizerManager . applyTheme !== theme
function adjustPrefix ( ) {
if ( ! plasmoid ) {
return "" ;
}
var pre ;
switch ( plasmoid . location ) {
case PlasmaCore.Types.LeftEdge:
pre = "west" ;
break ;
case PlasmaCore.Types.TopEdge:
pre = "north" ;
break ;
case PlasmaCore.Types.RightEdge:
pre = "east" ;
break ;
case PlasmaCore.Types.BottomEdge:
pre = "south" ;
break ;
default:
prefix = "" ;
}
prefix = [ pre , "" ] ;
}
}
backgroundOpacity: {
if ( busyBackground && ! forceSolidness ) {
return plasmoid . configuration . panelTransparency / 100 ;
}
/ / ! L a y e r 4 : P l a s m a t h e m e d e s i g n d o e s n o t p r o v i d e a w a y t o c o l o r i z e t h e b a c k g r o u n d . T h i s l a y e r
/ / ! s o l v e s t h i s b y p r o v i d i n g a c u s t o m b a c k g r o u n d l a y e r t h a t r e s p e c t s t h e C o l o r i z e r p a l e t t e
Colorizer . CustomBackground {
id: overlayedBackground
anchors.fill: solidBackground
if ( coloredView || customShadowedRectangleIsEnabled ) {
return midOpacity ;
}
readonly property bool busyBackground: root . forcePanelForBusyBackground
&& ( solidBackground . opacity === 0 || ! solidBackground . paintInstantly )
readonly property bool coloredView: colorizerManager . mustBeShown && colorizerManager . applyTheme !== theme
return 0 ;
backgroundOpacity: {
if ( busyBackground && ! forceSolidness ) {
return plasmoid . configuration . panelTransparency / 100 ;
}
backgroundColor: colorizerManager . backgroundColor
borderColor: backgroundColor /*disabled in favor of Layer 5*/
borderWidth: 1 /*disabled in favor of Layer 5*/
shadowColor: customShadowColor
shadowSize: {
if ( ! customShadowIsEnabled ) {
return 0 ;
}
/ / ! W O R K A R O U N D : K i r i g a m i . S h a d o w e d R e c t a n g l e d o e s n o t r e s p e c t t h e s p e c i f i e d s h a d o w e d s i z e
/ / ! w h e n t h e s h a d o w s i z e i s b i g g e r t h a n b a c k g r o u n d t h i c k n e s s . I n s u c h c a s e t h e S h a d o w e d R e c t a n g l e
/ / ! p r o d u c e d s h a d o w e d i s m u c h b i g g e r t h a n t h e s p e c i f i e d o n e
var minaxis = Math . min ( solidBackground . height , solidBackground . width )
return customShadow > minaxis ? minaxis : customShadow ;
if ( coloredView || customShadowedRectangleIsEnabled ) {
return midOpacity ;
}
roundness: {
if ( customRadiusIsEnabled ) {
return customRadius ;
}
return 0 ;
}
return themeExtendedBackground ? themeExtendedBackground.roundness : 0
backgroundColor: colorizerManager . backgroundColor
borderColor: backgroundColor /*disabled in favor of Layer 5*/
borderWidth: 1 /*disabled in favor of Layer 5*/
shadowColor: customShadowColor
shadowSize: {
if ( ! customShadowIsEnabled ) {
return 0 ;
}
property real midOpacity: {
if ( forceSolidness ) {
return 1 ;
} else if ( ! root . userShowPanelBackground || root . forcePanelForBusyBackground || root . forceTransparentPanel ) {
return 0 ;
} else {
return plasmoid . configuration . panelTransparency / 100 ;
}
/ / ! W O R K A R O U N D : K i r i g a m i . S h a d o w e d R e c t a n g l e d o e s n o t r e s p e c t t h e s p e c i f i e d s h a d o w e d s i z e
/ / ! w h e n t h e s h a d o w s i z e i s b i g g e r t h a n b a c k g r o u n d t h i c k n e s s . I n s u c h c a s e t h e S h a d o w e d R e c t a n g l e
/ / ! p r o d u c e d s h a d o w e d i s m u c h b i g g e r t h a n t h e s p e c i f i e d o n e
var minaxis = Math . min ( solidBackground . height , solidBackground . width )
return customShadow > minaxis ? minaxis : customShadow ;
}
roundness: {
if ( customRadiusIsEnabled ) {
return customRadius ;
}
readonly property bool forceSolidness: root . forceSolidPanel || ! LatteCore . WindowSystem . compositingActive
return themeExtendedBackground ? themeExtendedBackground.roundness : 0
}
Behavior on backgroundOpacity {
enabled: LatteCore . WindowSystem . compositingActive
NumberAnimation { duration: barLine . animationTime }
property real midOpacity: {
if ( forceSolidness ) {
return 1 ;
} else if ( ! root . userShowPanelBackground || root . forcePanelForBusyBackground || root . forceTransparentPanel ) {
return 0 ;
} else {
return plasmoid . configuration . panelTransparency / 100 ;
}
}
Behavior on backgroundOpacity {
enabled: ! LatteCore . WindowSystem . compositingActive
NumberAnimation { duration: 0 }
}
readonly property bool forceSolidness: root . forceSolidPanel || ! LatteCore . WindowSystem . compositingActive
Behavior on backgroundColor {
enabled: LatteCore . WindowSystem . compositingActive
Colo rAnimation { duration: barLine . animationTime }
}
Behavior on backgroundOpacity {
enabled: LatteCore . WindowSystem . compositingActive
Numbe rAnimation { duration: barLine . animationTime }
}
Behavior on backgroundColor {
enabled: ! LatteCore . WindowSystem . compositingActive
ColorAnimation { duration: 0 }
}
Behavior on backgroundOpacity {
enabled: ! LatteCore . WindowSystem . compositingActive
NumberAnimation { duration: 0 }
}
/ / ! L a y e r 5 : P l a s m a t h e m e d e s i g n d o e s n o t p r o v i d e a w a y t o d r a w b a c k g r o u n d o u t l i n e o n d e m a n d . T h i s l a y e r
/ / ! s o l v e s t h i s b y p r o v i d i n g a c u s t o m b a c k g r o u n d l a y e r t h a t o n l y d r a w s a n o u t l i n e o n t o p o f a l l
/ / ! p r e v i o u s l a y e r s
Loader {
anchors.fill: solidBackground
active: root . panelOutline && ! ( root . hasExpandedApplet && root . plasmaBackgroundForPopups )
sourceComponent: Colorizer . CustomBackground {
backgroundColor: "transparent"
borderColor: colorizerManager . outlineColor
borderWidth: themeExtended ? themeExtended.outlineWidth : 1
roundness: overlayedBackground . roundness
}
Behavior on backgroundColor {
enabled: LatteCore . WindowSystem . compositingActive
ColorAnimation { duration: barLine . animationTime }
}
Behavior on backgroundColor {
enabled: ! LatteCore . WindowSystem . compositingActive
ColorAnimation { duration: 0 }
}
}
/ / ! C u s t o m B a c k g r o u n d d e b u g g e r
/ * C o l o r i z e r . C u s t o m B a c k g r o u n d {
anchors.fill: solidBackground
/ / ! L a y e r 5 : P l a s m a t h e m e d e s i g n d o e s n o t p r o v i d e a w a y t o d r a w b a c k g r o u n d o u t l i n e o n d e m a n d . T h i s l a y e r
/ / ! s o l v e s t h i s b y p r o v i d i n g a c u s t o m b a c k g r o u n d l a y e r t h a t o n l y d r a w s a n o u t l i n e o n t o p o f a l l
/ / ! p r e v i o u s l a y e r s
Loader {
anchors.fill: solidBackground
active: root . panelOutline && ! ( root . hasExpandedApplet && root . plasmaBackgroundForPopups )
sourceComponent: Colorizer . CustomBackground {
backgroundColor: "transparent"
borderWidth: 1
borderColor: "red"
border Color: colorizerManager . outlineColor
border Width: themeExtended ? themeExtended.outlineWidth : 1
roundness: overlayedBackground . roundness
} * /
}
}
/ / ! C u s t o m B a c k g r o u n d d e b u g g e r
/ * C o l o r i z e r . C u s t o m B a c k g r o u n d {
anchors.fill: solidBackground
backgroundColor: "transparent"
borderWidth: 1
borderColor: "red"
roundness: overlayedBackground . roundness
} * /
/ / B E G I N s t a t e s
/ / u s e r s e t P a n e l P o s i t i o n s
/ / 0 - C e n t e r , 1 - L e f t , 2 - R i g h t , 3 - T o p , 4 - B o t t o m