Merge pull request 'develop-unfocusTextField' (#56) from develop-unfocusTextField into develop
Reviewed-on: #56
This commit is contained in:
		@@ -14,6 +14,7 @@ import '../../../../api/mhsl/server/feedback/addFeedbackParams.dart';
 | 
				
			|||||||
import '../../../../model/accountData.dart';
 | 
					import '../../../../model/accountData.dart';
 | 
				
			||||||
import '../../../../storage/base/settingsProvider.dart';
 | 
					import '../../../../storage/base/settingsProvider.dart';
 | 
				
			||||||
import '../../../../widget/filePick.dart';
 | 
					import '../../../../widget/filePick.dart';
 | 
				
			||||||
 | 
					import '../../../../widget/focusBehaviour.dart';
 | 
				
			||||||
import '../../../../widget/infoDialog.dart';
 | 
					import '../../../../widget/infoDialog.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class FeedbackDialog extends StatefulWidget {
 | 
					class FeedbackDialog extends StatefulWidget {
 | 
				
			||||||
@@ -68,6 +69,7 @@ class _FeedbackDialogState extends State<FeedbackDialog> {
 | 
				
			|||||||
              ),
 | 
					              ),
 | 
				
			||||||
              minLines: 4,
 | 
					              minLines: 4,
 | 
				
			||||||
              maxLines: 7,
 | 
					              maxLines: 7,
 | 
				
			||||||
 | 
					              onTapOutside: (PointerDownEvent event) => FocusBehaviour.textFieldTapOutside(context),
 | 
				
			||||||
            ),
 | 
					            ),
 | 
				
			||||||
          ),
 | 
					          ),
 | 
				
			||||||
          const SizedBox(height: 10),
 | 
					          const SizedBox(height: 10),
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -115,7 +115,7 @@ class _ChatViewState extends State<ChatView> {
 | 
				
			|||||||
                scale: 1.5,
 | 
					                scale: 1.5,
 | 
				
			||||||
                opacity: 1,
 | 
					                opacity: 1,
 | 
				
			||||||
                repeat: ImageRepeat.repeat,
 | 
					                repeat: ImageRepeat.repeat,
 | 
				
			||||||
                invertColors: AppTheme.isDarkMode(context)
 | 
					                invertColors: AppTheme.isDarkMode(context),
 | 
				
			||||||
              )
 | 
					              )
 | 
				
			||||||
            ),
 | 
					            ),
 | 
				
			||||||
            child: data.primaryLoading() ? const LoadingSpinner() : Column(
 | 
					            child: data.primaryLoading() ? const LoadingSpinner() : Column(
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,6 +14,7 @@ import '../../../../api/marianumcloud/webdav/webdavApi.dart';
 | 
				
			|||||||
import '../../../../model/chatList/chatProps.dart';
 | 
					import '../../../../model/chatList/chatProps.dart';
 | 
				
			||||||
import '../../../../storage/base/settingsProvider.dart';
 | 
					import '../../../../storage/base/settingsProvider.dart';
 | 
				
			||||||
import '../../../../widget/filePick.dart';
 | 
					import '../../../../widget/filePick.dart';
 | 
				
			||||||
 | 
					import '../../../../widget/focusBehaviour.dart';
 | 
				
			||||||
import '../../files/fileUploadDialog.dart';
 | 
					import '../../files/fileUploadDialog.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class ChatTextfield extends StatefulWidget {
 | 
					class ChatTextfield extends StatefulWidget {
 | 
				
			||||||
@@ -156,6 +157,7 @@ class _ChatTextfieldState extends State<ChatTextfield> {
 | 
				
			|||||||
                      }
 | 
					                      }
 | 
				
			||||||
                      setDraft(text);
 | 
					                      setDraft(text);
 | 
				
			||||||
                    },
 | 
					                    },
 | 
				
			||||||
 | 
					                    onTapOutside: (PointerDownEvent event) => FocusBehaviour.textFieldTapOutside(context),
 | 
				
			||||||
                  ),
 | 
					                  ),
 | 
				
			||||||
                ),
 | 
					                ),
 | 
				
			||||||
                const SizedBox(width: 15),
 | 
					                const SizedBox(width: 15),
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,6 +15,7 @@ import '../../../api/mhsl/customTimetableEvent/update/updateCustomTimetableEvent
 | 
				
			|||||||
import '../../../api/mhsl/customTimetableEvent/update/updateCustomTimetableEventParams.dart';
 | 
					import '../../../api/mhsl/customTimetableEvent/update/updateCustomTimetableEventParams.dart';
 | 
				
			||||||
import '../../../model/accountData.dart';
 | 
					import '../../../model/accountData.dart';
 | 
				
			||||||
import '../../../model/timetable/timetableProps.dart';
 | 
					import '../../../model/timetable/timetableProps.dart';
 | 
				
			||||||
 | 
					import '../../../widget/focusBehaviour.dart';
 | 
				
			||||||
import '../../../widget/infoDialog.dart';
 | 
					import '../../../widget/infoDialog.dart';
 | 
				
			||||||
import 'customTimetableColors.dart';
 | 
					import 'customTimetableColors.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -67,6 +68,7 @@ class _AddCustomTimetableEventDialogState extends State<CustomTimetableEventEdit
 | 
				
			|||||||
                  labelText: 'Terminname',
 | 
					                  labelText: 'Terminname',
 | 
				
			||||||
                  border: OutlineInputBorder()
 | 
					                  border: OutlineInputBorder()
 | 
				
			||||||
                ),
 | 
					                ),
 | 
				
			||||||
 | 
					                onTapOutside: (PointerDownEvent event) => FocusBehaviour.textFieldTapOutside(context),
 | 
				
			||||||
              ),
 | 
					              ),
 | 
				
			||||||
            ),
 | 
					            ),
 | 
				
			||||||
            ListTile(
 | 
					            ListTile(
 | 
				
			||||||
@@ -78,6 +80,7 @@ class _AddCustomTimetableEventDialogState extends State<CustomTimetableEventEdit
 | 
				
			|||||||
                  labelText: 'Beschreibung',
 | 
					                  labelText: 'Beschreibung',
 | 
				
			||||||
                  border: OutlineInputBorder()
 | 
					                  border: OutlineInputBorder()
 | 
				
			||||||
                ),
 | 
					                ),
 | 
				
			||||||
 | 
					                onTapOutside: (PointerDownEvent event) => FocusBehaviour.textFieldTapOutside(context),
 | 
				
			||||||
              ),
 | 
					              ),
 | 
				
			||||||
            ),
 | 
					            ),
 | 
				
			||||||
            const Divider(),
 | 
					            const Divider(),
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										7
									
								
								lib/widget/focusBehaviour.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								lib/widget/focusBehaviour.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					import 'package:flutter/cupertino.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class FocusBehaviour {
 | 
				
			||||||
 | 
					  static void textFieldTapOutside(BuildContext context) {
 | 
				
			||||||
 | 
					    FocusScope.of(context).requestFocus(FocusNode());
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -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,
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
		Reference in New Issue
	
	Block a user