From 8cc3ae76301ee72faa5b33c04c65fe8e694bc4ae Mon Sep 17 00:00:00 2001 From: Enguerrand_ARMINJON_MAC_2 Date: Fri, 13 Mar 2026 14:48:41 +0100 Subject: [PATCH] fix: Avoid restoring platform input control --- analysis_options.yaml | 3 +++ lib/src/widgets/keyboard.dart | 11 ++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/analysis_options.yaml b/analysis_options.yaml index 6006d3a..68ce4d3 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -15,6 +15,9 @@ linter: - avoid_unused_constructor_parameters - use_super_parameters +formatter: + page_width: 80 + analyzer: errors: # Treat these as info/ignore for existing codebase compatibility diff --git a/lib/src/widgets/keyboard.dart b/lib/src/widgets/keyboard.dart index ac32ca5..07a3ac4 100644 --- a/lib/src/widgets/keyboard.dart +++ b/lib/src/widgets/keyboard.dart @@ -1,7 +1,9 @@ import 'dart:async'; import 'dart:math'; + import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; + import '../enums.dart'; import '../layouts/keyboard_language.dart'; import '../layouts/keyboard_layout_provider.dart'; @@ -136,8 +138,12 @@ class _VirtualKeypadState extends State { _inputControl = StandaloneInputControl( onShow: _onStandaloneShow, onHide: () { - if (!mounted) return; - setState(() => _standaloneVisible = false); + _standaloneVisible = false; + // onHide can be called during build + WidgetsBinding.instance.addPostFrameCallback((_) { + if (!mounted) return; + setState(() {}); + }); }, ); TextInput.setInputControl(_inputControl!); @@ -147,7 +153,6 @@ class _VirtualKeypadState extends State { void _disposeStandalone() { FocusManager.instance.removeListener(_onFocusChanged); if (_inputControl != null) { - TextInput.restorePlatformInputControl(); _inputControl = null; } }