forked from mirrors/rustdesk
flutter: keep chat window within screen bounds to prevent hidden chat window (fixes rustdesk#13397) (#13406)
This commit is contained in:
parent
fef44ffa57
commit
b75f4daa47
1 changed files with 11 additions and 1 deletions
|
|
@ -50,6 +50,7 @@ class DraggableChatWindow extends StatelessWidget {
|
|||
)
|
||||
: Draggable(
|
||||
checkKeyboard: true,
|
||||
checkScreenSize: true,
|
||||
position: draggablePositions.chatWindow,
|
||||
width: width,
|
||||
height: height,
|
||||
|
|
@ -395,7 +396,10 @@ class _DraggableState extends State<Draggable> {
|
|||
_chatModel?.setChatWindowPosition(position);
|
||||
}
|
||||
|
||||
checkScreenSize() {}
|
||||
checkScreenSize() {
|
||||
// Ensure the draggable always stays within current screen bounds
|
||||
widget.position.tryAdjust(widget.width, widget.height, 1);
|
||||
}
|
||||
|
||||
checkKeyboard() {
|
||||
final bottomHeight = MediaQuery.of(context).viewInsets.bottom;
|
||||
|
|
@ -517,6 +521,12 @@ class IOSDraggableState extends State<IOSDraggable> {
|
|||
_lastBottomHeight = bottomHeight;
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
position.tryAdjust(_width, _height, 1);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
checkKeyboard();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue