Fix AI scribe menu going off screen to the top

If it was opened at the top of the composer, it could go off screen to the top.

modalHeight was missing so the calculateModalPosition method could not protect the AI scribe menu to go off screen from the top.
This commit is contained in:
Théo Poizat
2025-12-11 13:55:30 +01:00
committed by Dat H. Pham
parent c7886614cd
commit 4d8d688afb
2 changed files with 75 additions and 1 deletions
@@ -67,10 +67,16 @@ Future<void> showAIScribeDialog({
);
if (buttonPosition != null) {
final categories = availableCategories ?? AIScribeMenuCategory.values;
final modalHeight = hasContent
? (categories.length * AIScribeSizes.menuItemHeight) + AIScribeSizes.fieldSpacing + AIScribeSizes.barHeight
: AIScribeSizes.barHeight;
final position = calculateModalPosition(
context: context,
buttonPosition: buttonPosition,
modalWidth: AIScribeSizes.barWidth,
modalHeight: modalHeight,
);
return PointerInterceptor(
@@ -158,6 +164,15 @@ Future<void> showAIScribeDialog({
);
}
double calculateMenuDialogHeight({
required bool hasContent,
required int categoryCount,
}) {
return hasContent
? (categoryCount * AIScribeSizes.menuItemHeight) + AIScribeSizes.fieldSpacing + AIScribeSizes.barHeight
: AIScribeSizes.barHeight;
}
({double left, double bottom}) calculateModalPosition({
required BuildContext context,
required Offset buttonPosition,