diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ios.m | 2 | ||||
-rw-r--r-- | src/ui/inputwidget.c | 12 |
2 files changed, 8 insertions, 6 deletions
@@ -695,7 +695,7 @@ static CGRect convertToCGRect_(const iRect *rect, iBool expanded) { | |||
695 | frame.origin.x -= inset + 1; | 695 | frame.origin.x -= inset + 1; |
696 | frame.origin.y -= inset + 1; | 696 | frame.origin.y -= inset + 1; |
697 | frame.size.width += 2 * inset + 2; | 697 | frame.size.width += 2 * inset + 2; |
698 | frame.size.height += inset + 1; | 698 | frame.size.height += inset + 1 + inset; |
699 | } | 699 | } |
700 | return frame; | 700 | return frame; |
701 | } | 701 | } |
diff --git a/src/ui/inputwidget.c b/src/ui/inputwidget.c index 1935826b..3bee3d21 100644 --- a/src/ui/inputwidget.c +++ b/src/ui/inputwidget.c | |||
@@ -722,18 +722,19 @@ static void updateAllLinesAndResizeHeight_InputWidget_(iInputWidget *d) { | |||
722 | #endif | 722 | #endif |
723 | 723 | ||
724 | static int contentHeight_InputWidget_(const iInputWidget *d) { | 724 | static int contentHeight_InputWidget_(const iInputWidget *d) { |
725 | const int lineHeight = lineHeight_Text(d->font); | ||
725 | #if LAGRANGE_USE_SYSTEM_TEXT_INPUT | 726 | #if LAGRANGE_USE_SYSTEM_TEXT_INPUT |
726 | const int minHeight = d->minWrapLines * lineHeight_Text(d->font); | 727 | const int minHeight = d->minWrapLines * lineHeight; |
727 | const int maxHeight = d->maxWrapLines * lineHeight_Text(d->font); | 728 | const int maxHeight = d->maxWrapLines * lineHeight; |
728 | if (d->sysCtrl) { | 729 | if (d->sysCtrl) { |
729 | const int preferred = preferredHeight_SystemTextInput(d->sysCtrl); | 730 | const int preferred = (preferredHeight_SystemTextInput(d->sysCtrl) + gap_UI) / lineHeight; |
730 | return iClamp(preferred, minHeight, maxHeight); | 731 | return iClamp(preferred * lineHeight, minHeight, maxHeight); |
731 | } | 732 | } |
732 | if (d->buffered && ~d->inFlags & needUpdateBuffer_InputWidgetFlag) { | 733 | if (d->buffered && ~d->inFlags & needUpdateBuffer_InputWidgetFlag) { |
733 | return iClamp(d->buffered->size.y, minHeight, maxHeight); | 734 | return iClamp(d->buffered->size.y, minHeight, maxHeight); |
734 | } | 735 | } |
735 | #endif | 736 | #endif |
736 | return size_Range(&d->visWrapLines) * lineHeight_Text(d->font); | 737 | return (int) size_Range(&d->visWrapLines) * lineHeight; |
737 | } | 738 | } |
738 | 739 | ||
739 | static void updateTextInputRect_InputWidget_(const iInputWidget *d) { | 740 | static void updateTextInputRect_InputWidget_(const iInputWidget *d) { |
@@ -1178,6 +1179,7 @@ void begin_InputWidget(iInputWidget *d) { | |||
1178 | setText_SystemTextInput(d->sysCtrl, &d->oldText); | 1179 | setText_SystemTextInput(d->sysCtrl, &d->oldText); |
1179 | setTextChangedFunc_SystemTextInput(d->sysCtrl, systemInputChanged_InputWidget_, d); | 1180 | setTextChangedFunc_SystemTextInput(d->sysCtrl, systemInputChanged_InputWidget_, d); |
1180 | iConnect(Root, w->root, visualOffsetsChanged, d, updateAfterVisualOffsetChange_InputWidget_); | 1181 | iConnect(Root, w->root, visualOffsetsChanged, d, updateAfterVisualOffsetChange_InputWidget_); |
1182 | updateTextInputRect_InputWidget_(d); | ||
1181 | updateMetrics_InputWidget_(d); | 1183 | updateMetrics_InputWidget_(d); |
1182 | #else | 1184 | #else |
1183 | mergeLines_(&d->lines, &d->oldText); | 1185 | mergeLines_(&d->lines, &d->oldText); |