summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ios.m2
-rw-r--r--src/ui/inputwidget.c12
2 files changed, 8 insertions, 6 deletions
diff --git a/src/ios.m b/src/ios.m
index 6d0a8d0f..6a30c8a8 100644
--- a/src/ios.m
+++ b/src/ios.m
@@ -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
724static int contentHeight_InputWidget_(const iInputWidget *d) { 724static 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
739static void updateTextInputRect_InputWidget_(const iInputWidget *d) { 740static 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);