Skip to content

Commit 630e14f

Browse files
authored
ui: avoid unnecessary text cache invalidation in UnifiedLabel (#36676)
avoid unnecessary text cache invalidation in UnifiedLabel
1 parent 394f580 commit 630e14f

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

system/ui/widgets/label.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -446,7 +446,7 @@ def __init__(self,
446446
def set_text(self, text: str | Callable[[], str]):
447447
"""Update the text content."""
448448
self._text = text
449-
self._cached_text = None # Invalidate cache
449+
# No need to update cache here, will be done on next render if needed
450450

451451
@property
452452
def text(self) -> str:
@@ -463,15 +463,17 @@ def set_color(self, color: rl.Color):
463463

464464
def set_font_size(self, size: int):
465465
"""Update the font size."""
466-
self._font_size = size
467-
self._spacing_pixels = size * self._letter_spacing # Recalculate spacing
468-
self._cached_text = None # Invalidate cache
466+
if self._font_size != size:
467+
self._font_size = size
468+
self._spacing_pixels = size * self._letter_spacing # Recalculate spacing
469+
self._cached_text = None # Invalidate cache
469470

470471
def set_letter_spacing(self, letter_spacing: float):
471472
"""Update letter spacing (as percentage, e.g., 0.1 = 10%)."""
472-
self._letter_spacing = letter_spacing
473-
self._spacing_pixels = self._font_size * letter_spacing
474-
self._cached_text = None # Invalidate cache
473+
if self._letter_spacing != letter_spacing:
474+
self._letter_spacing = letter_spacing
475+
self._spacing_pixels = self._font_size * letter_spacing
476+
self._cached_text = None # Invalidate cache
475477

476478
def set_font_weight(self, font_weight: FontWeight):
477479
"""Update the font weight."""

0 commit comments

Comments
 (0)