Skip to content

Conversation

@faizahmaddae
Copy link
Contributor

Problem

The editable TextField in the text editor had a hardcoded height: 0.0 in its style, causing misalignment between the text and its rounded background. This was especially noticeable with fonts that have custom line heights (e.g., Persian/Arabic fonts).

Solution

Removed the forced height: 0.0 from the TextField's style, allowing it to preserve the original height from the TextStyle. This ensures proper alignment between the editable text and its background.

Changes

  • lib/features/text_editor/widgets/rounded_background_text/rounded_background_text_field.dart
    • Removed height: 0.0 from the TextField style in _buildEditableText()

Testing

Tested with various fonts including Persian fonts with custom line heights. The background now properly wraps the text during editing.

Removed hardcoded height: 0.0 from the editable TextField's style.
This preserves the original height from the TextStyle, ensuring proper
alignment between the editable text and its rounded background.

Previously, the forced height: 0.0 caused misalignment with fonts that
have custom line heights (e.g., Persian/Arabic fonts), resulting in
the background not properly fitting the text during editing.
- Added 'shadow': 'sh' to minified keys for compact JSON export
- Added shadow parsing in TextLayer.fromMap() to restore shadow on import
- Added shadow serialization in TextLayer.toMap() and toMapFromReference()

Shadow format in JSON:
{
  "shadow": {
    "color": <int>,
    "blurRadius": <double>,
    "offsetX": <double>,
    "offsetY": <double>
  }
}

This is backward compatible - projects without shadow will continue to work.
- Remove shadows: [] override in text_editor_input.dart that was clearing shadows
- Add finalStyle logic in layer_widget_text_item.dart to properly merge textStyle including shadows
Move bodyItems after _buildTextField() in Stack so font size slider
stays accessible when text is large and multi-line
- Changed toMap to export all shadows as a list instead of just first
- Updated fromMap to parse shadows list with legacy single shadow fallback
- Added textHeight property to TextEditorStyle (defaults to 0.0 for centering)
- Applied textHeight to text_editor_input style and hintStyle
@faizahmaddae
Copy link
Contributor Author

Closing this PR as all changes have been consolidated into PR #733 with a cleaner implementation.

The textHeight configuration approach in #733 is the proper solution for the height issue mentioned here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant