Dev #1

Merged
w-vandal merged 62 commits from dev into main 2026-08-26 04:56:44 +00:00
Showing only changes of commit 24ced267cb - Show all commits
@@ -18,6 +18,18 @@ _PER_SIDE_KEYS = {
"border-top-width", "border-right-width", "border-bottom-width", "border-left-width",
}
# Réglages "tous les côtés" dont la valeur par défaut est 0 (donc PAS filtrée
# par "default in (None, '')" ci-dessous) : figés à la création pour tout
# widget "nu" (reset volontaire, indispensable sur un canevas en positionnement
# libre — sans lui, chaque <h1>/<ul>/<p> arriverait avec les marges/paddings
# par défaut du navigateur). Mais pour un widget qui porte déjà une classe
# externe (ex. Bulma "button"/"box" — voir fixed_attrs dans registry.py), ce
# reset à 0 écraserait en permanence le padding/la bordure propres à cette
# classe (un bouton Bulma sans padding ne ressemble plus à un bouton) : on ne
# les fige donc PAS pour ces widgets-là, exactement comme les couleurs sont
# déjà exclues plus bas pour ne jamais imposer une valeur non demandée.
_ZERO_DEFAULT_RESET_KEYS = {"padding", "margin", "border-width"}
def default_style_and_attributes(widget_key):
"""Calcule le style/attributs de DÉPART d'un élément fraîchement posé sur
@@ -33,6 +45,7 @@ def default_style_and_attributes(widget_key):
demandée. Voir save_element_controls.py pour la même règle appliquée
aux modifications ultérieures via le panneau de propriétés."""
meta = widget_meta(widget_key)
is_native_class_widget = bool(meta.get("fixed_attrs", {}).get("class"))
attributes, style = {}, {}
for control in meta.get("controls", []):
ctype = control["type"]
@@ -43,6 +56,8 @@ def default_style_and_attributes(widget_key):
# type de réglage (voir size_override_controls.py) — jamais une
# vraie valeur par défaut à figer à la création.
continue
if is_native_class_widget and control["key"] in _ZERO_DEFAULT_RESET_KEYS:
continue
target = control.get("target")
if not target or target == "content":
continue