mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
Merge pull request #1405 from Textualize/child-color
fix for child color refresh
This commit is contained in:
@@ -794,9 +794,8 @@ class NameListProperty:
|
|||||||
class ColorProperty:
|
class ColorProperty:
|
||||||
"""Descriptor for getting and setting color properties."""
|
"""Descriptor for getting and setting color properties."""
|
||||||
|
|
||||||
def __init__(self, default_color: Color | str, background: bool = False) -> None:
|
def __init__(self, default_color: Color | str) -> None:
|
||||||
self._default_color = Color.parse(default_color)
|
self._default_color = Color.parse(default_color)
|
||||||
self._is_background = background
|
|
||||||
|
|
||||||
def __set_name__(self, owner: StylesBase, name: str) -> None:
|
def __set_name__(self, owner: StylesBase, name: str) -> None:
|
||||||
self.name = name
|
self.name = name
|
||||||
@@ -830,11 +829,10 @@ class ColorProperty:
|
|||||||
_rich_traceback_omit = True
|
_rich_traceback_omit = True
|
||||||
if color is None:
|
if color is None:
|
||||||
if obj.clear_rule(self.name):
|
if obj.clear_rule(self.name):
|
||||||
obj.refresh(children=self._is_background)
|
obj.refresh(children=True)
|
||||||
elif isinstance(color, Color):
|
elif isinstance(color, Color):
|
||||||
if obj.set_rule(self.name, color):
|
if obj.set_rule(self.name, color):
|
||||||
obj.refresh(children=self._is_background)
|
obj.refresh(children=True)
|
||||||
|
|
||||||
elif isinstance(color, str):
|
elif isinstance(color, str):
|
||||||
alpha = 1.0
|
alpha = 1.0
|
||||||
parsed_color = Color(255, 255, 255)
|
parsed_color = Color(255, 255, 255)
|
||||||
@@ -855,8 +853,9 @@ class ColorProperty:
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
parsed_color = parsed_color.with_alpha(alpha)
|
parsed_color = parsed_color.with_alpha(alpha)
|
||||||
|
|
||||||
if obj.set_rule(self.name, parsed_color):
|
if obj.set_rule(self.name, parsed_color):
|
||||||
obj.refresh(children=self._is_background)
|
obj.refresh(children=True)
|
||||||
else:
|
else:
|
||||||
raise StyleValueError(f"Invalid color value {color}")
|
raise StyleValueError(f"Invalid color value {color}")
|
||||||
|
|
||||||
|
|||||||
@@ -214,7 +214,7 @@ class StylesBase(ABC):
|
|||||||
|
|
||||||
auto_color = BooleanProperty(default=False)
|
auto_color = BooleanProperty(default=False)
|
||||||
color = ColorProperty(Color(255, 255, 255))
|
color = ColorProperty(Color(255, 255, 255))
|
||||||
background = ColorProperty(Color(0, 0, 0, 0), background=True)
|
background = ColorProperty(Color(0, 0, 0, 0))
|
||||||
text_style = StyleFlagsProperty()
|
text_style = StyleFlagsProperty()
|
||||||
|
|
||||||
opacity = FractionalProperty()
|
opacity = FractionalProperty()
|
||||||
@@ -421,7 +421,7 @@ class StylesBase(ABC):
|
|||||||
|
|
||||||
Args:
|
Args:
|
||||||
layout (bool, optional): Also require a layout. Defaults to False.
|
layout (bool, optional): Also require a layout. Defaults to False.
|
||||||
children (bool, opional): Also refresh children. Defaults to False.
|
children (bool, optional): Also refresh children. Defaults to False.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
|
|||||||
Reference in New Issue
Block a user