• Taha Tesser's avatar
    Fix `InputDecorator`s `suffix` and `prefix` widgets are tappable when hidden (#143308) · 1f8d110b
    Taha Tesser authored
    fixes [The InputDecoration's suffix and prefix widget can be tapped even if it does not appear](https://github.com/flutter/flutter/issues/139916)
    
    This PR also updates two existing tests to pass the tests for this PR. These tests are trying to tap prefix and  suffix widgets when they're hidden. While the linked issue had visible prefix and suffix widgets https://github.com/flutter/flutter/issues/39376 for reproduction.
    
    ### Code sample
    
    <details>
    <summary>expand to view the code sample</summary> 
    
    ```dart
    import 'package:flutter/material.dart';
    
    void main() {
      runApp(MainApp());
    }
    
    class MainApp extends StatelessWidget {
      final _messangerKey = GlobalKey<ScaffoldMessengerState>();
    
      MainApp({super.key});
    
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          scaffoldMessengerKey: _messangerKey,
          home: Scaffold(
            body: Container(
              alignment: Alignment.center,
              padding: const EdgeInsets.all(16.0),
              child: TextField(
                decoration: InputDecoration(
                  labelText: 'Something',
                  prefix: GestureDetector(
                    onTap: () {
                      _messangerKey.currentState?.showSnackBar(
                          const SnackBar(content: Text('A tap has occurred')));
                    },
                    child: const Icon(Icons.search),
                  ),
                  suffix: GestureDetector(
                    onTap: () {
                      _messangerKey.currentState?.showSnackBar(
                          const SnackBar(content: Text('A tap has occurred')));
                    },
                    child: const Icon(Icons.search),
                  ),
                ),
              ),
            ),
          ),
        );
      }
    }
    ```
    
    </details>
    
    ### Before
    ![ScreenRecording2024-02-12at18 40 34-ezgif com-video-to-gif-converter](https://github.com/flutter/flutter/assets/48603081/c101e0d6-ce5a-4b28-9626-28bcb83d2a5c)
    
    ### After
    ![ScreenRecording2024-02-12at18 40 10-ezgif com-video-to-gif-converter](https://github.com/flutter/flutter/assets/48603081/923b348e-8adf-4d64-9dc3-e75d30e3e2fb)
    1f8d110b
Name
Last commit
Last update
.github Loading commit data...
.vscode Loading commit data...
bin Loading commit data...
dev Loading commit data...
examples Loading commit data...
packages Loading commit data...
.ci.yaml Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
CODEOWNERS Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
CONTRIBUTING.md Loading commit data...
LICENSE Loading commit data...
PATENT_GRANT Loading commit data...
README.md Loading commit data...
TESTOWNERS Loading commit data...
analysis_options.yaml Loading commit data...
dartdoc_options.yaml Loading commit data...
flutter_console.bat Loading commit data...