diff --git a/lib/view/pages/more/feedback/feedbackDialog.dart b/lib/view/pages/more/feedback/feedbackDialog.dart index fb3a478..2e0a3e7 100644 --- a/lib/view/pages/more/feedback/feedbackDialog.dart +++ b/lib/view/pages/more/feedback/feedbackDialog.dart @@ -14,6 +14,7 @@ import '../../../../api/mhsl/server/feedback/addFeedbackParams.dart'; import '../../../../model/accountData.dart'; import '../../../../storage/base/settingsProvider.dart'; import '../../../../widget/filePick.dart'; +import '../../../../widget/focusBehaviour.dart'; import '../../../../widget/infoDialog.dart'; class FeedbackDialog extends StatefulWidget { @@ -68,9 +69,7 @@ class _FeedbackDialogState extends State<FeedbackDialog> { ), minLines: 4, maxLines: 7, - onTapOutside: (PointerDownEvent event) { - FocusScope.of(context).requestFocus(FocusNode()); - }, + onTapOutside: (PointerDownEvent event) => FocusBehaviour.textFieldTapOutside(context), ), ), const SizedBox(height: 10), diff --git a/lib/view/pages/talk/chatView.dart b/lib/view/pages/talk/chatView.dart index 1797b3a..92fe293 100644 --- a/lib/view/pages/talk/chatView.dart +++ b/lib/view/pages/talk/chatView.dart @@ -110,13 +110,13 @@ class _ChatViewState extends State<ChatView> { ), body: Container( decoration: BoxDecoration( - image: DecorationImage( - image: const AssetImage('assets/background/chat.png'), - scale: 1.5, - opacity: 1, - repeat: ImageRepeat.repeat, - invertColors: AppTheme.isDarkMode(context) - ) + image: DecorationImage( + image: const AssetImage('assets/background/chat.png'), + scale: 1.5, + opacity: 1, + repeat: ImageRepeat.repeat, + invertColors: AppTheme.isDarkMode(context), + ) ), child: data.primaryLoading() ? const LoadingSpinner() : Column( children: [ diff --git a/lib/view/pages/talk/components/chatTextfield.dart b/lib/view/pages/talk/components/chatTextfield.dart index 885a9b1..5513d8a 100644 --- a/lib/view/pages/talk/components/chatTextfield.dart +++ b/lib/view/pages/talk/components/chatTextfield.dart @@ -14,6 +14,7 @@ import '../../../../api/marianumcloud/webdav/webdavApi.dart'; import '../../../../model/chatList/chatProps.dart'; import '../../../../storage/base/settingsProvider.dart'; import '../../../../widget/filePick.dart'; +import '../../../../widget/focusBehaviour.dart'; import '../../files/fileUploadDialog.dart'; class ChatTextfield extends StatefulWidget { @@ -156,9 +157,7 @@ class _ChatTextfieldState extends State<ChatTextfield> { } setDraft(text); }, - onTapOutside: (PointerDownEvent event) { - FocusScope.of(context).requestFocus(FocusNode()); - }, + onTapOutside: (PointerDownEvent event) => FocusBehaviour.textFieldTapOutside(context), ), ), const SizedBox(width: 15), diff --git a/lib/view/pages/timetable/customTimetableEventEditDialog.dart b/lib/view/pages/timetable/customTimetableEventEditDialog.dart index 7808e66..f08aafd 100644 --- a/lib/view/pages/timetable/customTimetableEventEditDialog.dart +++ b/lib/view/pages/timetable/customTimetableEventEditDialog.dart @@ -15,6 +15,7 @@ import '../../../api/mhsl/customTimetableEvent/update/updateCustomTimetableEvent import '../../../api/mhsl/customTimetableEvent/update/updateCustomTimetableEventParams.dart'; import '../../../model/accountData.dart'; import '../../../model/timetable/timetableProps.dart'; +import '../../../widget/focusBehaviour.dart'; import '../../../widget/infoDialog.dart'; import 'customTimetableColors.dart'; @@ -67,9 +68,7 @@ class _AddCustomTimetableEventDialogState extends State<CustomTimetableEventEdit labelText: 'Terminname', border: OutlineInputBorder() ), - onTapOutside: (PointerDownEvent event) { - FocusScope.of(context).requestFocus(FocusNode()); - }, + onTapOutside: (PointerDownEvent event) => FocusBehaviour.textFieldTapOutside(context), ), ), ListTile( @@ -81,9 +80,7 @@ class _AddCustomTimetableEventDialogState extends State<CustomTimetableEventEdit labelText: 'Beschreibung', border: OutlineInputBorder() ), - onTapOutside: (PointerDownEvent event) { - FocusScope.of(context).requestFocus(FocusNode()); - }, + onTapOutside: (PointerDownEvent event) => FocusBehaviour.textFieldTapOutside(context), ), ), const Divider(), diff --git a/lib/widget/focusBehaviour.dart b/lib/widget/focusBehaviour.dart new file mode 100644 index 0000000..fe5a52b --- /dev/null +++ b/lib/widget/focusBehaviour.dart @@ -0,0 +1,7 @@ +import 'package:flutter/cupertino.dart'; + +class FocusBehaviour { + static void textFieldTapOutside(BuildContext context) { + FocusScope.of(context).requestFocus(FocusNode()); + } +} \ No newline at end of file diff --git a/lib/widget/quickMenu.dart b/lib/widget/quickMenu.dart deleted file mode 100644 index 0c39968..0000000 --- a/lib/widget/quickMenu.dart +++ /dev/null @@ -1,23 +0,0 @@ -import 'package:flutter/material.dart'; - -class QuickMenu { - static void quickMenu(BuildContext context, BuildContext widgetContext, List<PopupMenuItem<dynamic>> items) { - final RenderBox overlay = Overlay.of(context).context.findRenderObject() as RenderBox; - - final RenderBox widgetRenderBox = widgetContext.findRenderObject() as RenderBox; - final Offset position = widgetRenderBox.localToGlobal(Offset.zero); - - showMenu( - context: context, - position: RelativeRect.fromRect( - Rect.fromPoints( - position, - position.translate(0, 0), - ), - Offset.zero & overlay.size, - ), - items: items, - ); - } - -} \ No newline at end of file