flutter: keep chat window within screen bounds to prevent hidden chat window (fixes rustdesk#13397) (#13406)

This commit is contained in:
21pages
2025-11-04 09:44:13 +08:00
committed by GitHub
parent fef44ffa57
commit b75f4daa47

View File

@@ -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();