mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
Reset styles before applying to ensure defaults are restored
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
App > View {
|
||||
docks: side=left/1;
|
||||
text: on #20639b;
|
||||
}
|
||||
|
||||
Widget:hover {
|
||||
@@ -28,6 +29,10 @@ Widget:hover {
|
||||
border: hkey;
|
||||
}
|
||||
|
||||
#header.-visible {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
#content {
|
||||
text: white on #20639b;
|
||||
border-bottom: hkey #0f2b41;
|
||||
|
||||
@@ -8,6 +8,7 @@ class BasicApp(App):
|
||||
def on_load(self):
|
||||
"""Bind keys here."""
|
||||
self.bind("tab", "toggle_class('#sidebar', '-active')")
|
||||
self.bind("a", "toggle_class('#header', '-visible')")
|
||||
|
||||
def on_mount(self):
|
||||
"""Build layout here."""
|
||||
|
||||
@@ -113,8 +113,14 @@ class Stylesheet:
|
||||
rule_attributes = defaultdict(list)
|
||||
|
||||
_check_rule = self._check_rule
|
||||
|
||||
node.reset_styles()
|
||||
|
||||
# Get the default node CSS rules
|
||||
for key, default_specificity, value in node._default_rules:
|
||||
rule_attributes[key].append((default_specificity, value))
|
||||
|
||||
# Apply styles on top of the default node CSS rules
|
||||
for rule in self.rules:
|
||||
for specificity in _check_rule(rule, node):
|
||||
for key, rule_specificity, value in rule.styles.extract_rules(
|
||||
@@ -123,13 +129,6 @@ class Stylesheet:
|
||||
rule_attributes[key].append((rule_specificity, value))
|
||||
|
||||
get_first_item = itemgetter(0)
|
||||
|
||||
log("")
|
||||
log(node)
|
||||
for key, attributes in rule_attributes.items():
|
||||
log(key, key in node.styles.important)
|
||||
log("\t", attributes)
|
||||
|
||||
node_rules = [
|
||||
(name, max(specificity_rules, key=get_first_item)[1])
|
||||
for name, specificity_rules in rule_attributes.items()
|
||||
|
||||
Reference in New Issue
Block a user