Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rotate issue on iOS only #116711

Closed
SwiftyFlow opened this issue Dec 8, 2022 · 14 comments · Fixed by flutter/engine#38230
Closed

Rotate issue on iOS only #116711

SwiftyFlow opened this issue Dec 8, 2022 · 14 comments · Fixed by flutter/engine#38230
Assignees
Labels
a: layout SystemChrome and Framework's Layout Issues engine flutter/engine repository. See also e: labels. found in release: 3.3 Found to occur in 3.3 found in release: 3.7 Found to occur in 3.7 has reproducible steps The issue has been confirmed reproducible and is ready to work on P1 High-priority issues at the top of the work list platform-ios iOS applications specifically r: fixed Issue is closed as already fixed in a newer version

Comments

@SwiftyFlow
Copy link

I have an app that is by design always limited to DeviceOrientation.portraitUp. We don't allow any other orientations except for one screen, which is used as PDF or Image viewer, I want to allow ONLY this view to rotate freely. It works fine on Android but not on iOS.

I have added this in initState:
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp, DeviceOrientation.landscapeRight, DeviceOrientation.landscapeLeft]);

in that case, all good on Android, but no effect on iOS it's like it has only DeviceOrientation.portraitUp

if I do:

if (Platform.isIOS) {
      SystemChrome.setPreferredOrientations([DeviceOrientation.landscapeRight, DeviceOrientation.landscapeLeft]);
    }

That allows landscape rotations but I cannot do portrait...

Any ideas?

Not mentioned but I do do:

void dispose() {
    SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
    super.dispose();
  }
@exaby73 exaby73 added the in triage Presently being triaged by the triage team label Dec 8, 2022
@exaby73
Copy link
Member

exaby73 commented Dec 8, 2022

Hello @SwiftyFlow. Thank you for filing this issue. Can you please provide the following information?

Please provide the information in the form of text. See how to make collapsible sections with Markdown here.

@exaby73 exaby73 added the waiting for customer response The Flutter team cannot make further progress on this issue until the original reporter responds label Dec 8, 2022
@SwiftyFlow
Copy link
Author

flutter doctor -v
[✓] Flutter (Channel master, 3.6.0-12.0.pre, on macOS 12.6 21G115 darwin-x64, locale en-AU)
• Flutter version 3.6.0-12.0.pre on channel master at /Users/flowpottevin/Desktop/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 02de129 (8 days ago), 2022-11-29 22:57:31 -0500
• Engine revision d5690468da
• Dart version 2.19.0 (build 2.19.0-443.0.dev)
• DevTools version 2.20.0

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0-rc1)
• Android SDK at /Users/flowpottevin/Library/Android/sdk
• Platform android-33, build-tools 33.0.0-rc1
• Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7590822)
• All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 14B47b
• CocoaPods version 1.11.3

[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.1)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7590822)

[✓] VS Code (version 1.74.0)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.54.0

[✓] Connected device (2 available)
• iPhone 14 Pro (mobile) • 3E76B56C-2A9E-4FD3-82AF-865D9EBB286A • ios • com.apple.CoreSimulator.SimRuntime.iOS-16-1 (simulator)
• Chrome (web) • chrome • web-javascript • Google Chrome 108.0.5359.94

[✓] HTTP Host Availability
• All required HTTP hosts are available

• No issues found!

@github-actions github-actions bot removed the waiting for customer response The Flutter team cannot make further progress on this issue until the original reporter responds label Dec 8, 2022
@SwiftyFlow
Copy link
Author

SwiftyFlow commented Dec 8, 2022

flutter run -v:

Not allowed to give private company data.

flutter run -v -> prints confidential data - cannot provide that...

@exaby73
Copy link
Member

exaby73 commented Dec 8, 2022

Please provide a code sample as mentioned in #116711 (comment)

@exaby73 exaby73 added the waiting for customer response The Flutter team cannot make further progress on this issue until the original reporter responds label Dec 8, 2022
@SwiftyFlow
Copy link
Author

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();

  SystemChrome.setSystemUIOverlayStyle(
    SystemUiOverlayStyle.dark.copyWith(
        statusBarColor: Colors.black, // Color for Android
        statusBarIconBrightness: Brightness.dark, // Status bar for Android
        statusBarBrightness: Brightness.dark), // Dark == white for IOS.
  );

  SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]).then((_) {
    runApp(const MyApp());
  });
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        appBarTheme: const AppBarTheme(systemOverlayStyle: SystemUiOverlayStyle.light),
        primarySwatch: greyCustom,
        colorScheme: ColorScheme.fromSwatch(primarySwatch: purpleCustom).copyWith(
          secondary: orangeCustom,
          background: greyCustom,
          error: orangeCustom,
        ),
        primaryColorLight: greyCustom,
        textTheme: GoogleFonts.robotoTextTheme(
          Theme.of(context).textTheme,
        ),
        buttonTheme: ButtonTheme.of(context).copyWith(
          buttonColor: tealCustom,
          shape: RoundedRectangleBorder(
            borderRadius: BorderRadius.circular(20),
          ),
        ),
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
      routes: {
        SecondScreen.routeName: (ctx) => const SecondScreen(),
      },
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text(widget.title),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              const Padding(
                padding: EdgeInsets.all(20),
                child: Text(
                  'This screen should not rotate. Notice some kind of glitch when coming back from second screen in landscape. And also if coming back in portrait but then tries to rotate in landscape here.',
                  textAlign: TextAlign.center,
                ),
              ),
              ElevatedButton(
                onPressed: () {
                  Navigator.of(context).pushNamed(SecondScreen.routeName);
                },
                child: const Text('Go to second screen'),
              )
            ],
          ),
        ));
  }
}

class SecondScreen extends StatefulWidget {
  static const routeName = '/second-screen';

  const SecondScreen({Key? key}) : super(key: key);

  @override
  State<SecondScreen> createState() => _SecondScreenState();
}

class _SecondScreenState extends State<SecondScreen> {
  @override
  void initState() {
    super.initState();

    SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp, DeviceOrientation.landscapeRight, DeviceOrientation.landscapeLeft]);
  }

  @override
  void dispose() {
    SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);

    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: const Text('Second Screen'),
        ),
        body: const Center(
            child: Padding(
          padding: EdgeInsets.symmetric(horizontal: 20),
          child: Text(
            'Only this screen should be able to rotate but it only does the very first time it shows. Never after...\n\nOnly fix: fully restart the app.',
            textAlign: TextAlign.center,
          ),
        )));
  }
}

MaterialColor purpleCustom = MaterialColor(0xFF7C437A, purpleCustomColor);
Map<int, Color> purpleCustomColor = {
  //7C437A
  50: const Color.fromRGBO(124, 67, 122, .1),
  100: const Color.fromRGBO(124, 67, 122, .2),
  200: const Color.fromRGBO(124, 67, 122, .3),
  300: const Color.fromRGBO(124, 67, 122, .4),
  400: const Color.fromRGBO(124, 67, 122, .5),
  500: const Color.fromRGBO(124, 67, 122, .6),
  600: const Color.fromRGBO(124, 67, 122, .7),
  700: const Color.fromRGBO(124, 67, 122, .8),
  800: const Color.fromRGBO(124, 67, 122, .9),
  900: const Color.fromRGBO(124, 67, 122, 1),
};

MaterialColor lightGreyCustom = MaterialColor(0xFFEEECEE, lightGreyCustomColor);
Map<int, Color> lightGreyCustomColor = {
  //eeecee
  50: const Color.fromRGBO(238, 236, 238, .1),
  100: const Color.fromRGBO(238, 236, 238, .2),
  200: const Color.fromRGBO(238, 236, 238, .3),
  300: const Color.fromRGBO(238, 236, 238, .4),
  400: const Color.fromRGBO(238, 236, 238, .5),
  500: const Color.fromRGBO(238, 236, 238, .6),
  600: const Color.fromRGBO(238, 236, 238, .7),
  700: const Color.fromRGBO(238, 236, 238, .8),
  800: const Color.fromRGBO(238, 236, 238, .9),
  900: const Color.fromRGBO(238, 236, 238, 1),
};

MaterialColor navBarGreyCustom = MaterialColor(0xFFA6A6A6, navBarGreyCustomColor);
Map<int, Color> navBarGreyCustomColor = {
  //a6a6a6
  50: const Color.fromRGBO(166, 166, 166, .1),
  100: const Color.fromRGBO(166, 166, 166, .2),
  200: const Color.fromRGBO(166, 166, 166, .3),
  300: const Color.fromRGBO(166, 166, 166, .4),
  400: const Color.fromRGBO(166, 166, 166, .5),
  500: const Color.fromRGBO(166, 166, 166, .6),
  600: const Color.fromRGBO(166, 166, 166, .7),
  700: const Color.fromRGBO(166, 166, 166, .8),
  800: const Color.fromRGBO(166, 166, 166, .9),
  900: const Color.fromRGBO(166, 166, 166, 1),
};

MaterialColor navIconGreyCustom = MaterialColor(0xFF717171, navIconGreyCustomColor);
Map<int, Color> navIconGreyCustomColor = {
  //717171
  50: const Color.fromRGBO(113, 113, 133, .1),
  100: const Color.fromRGBO(113, 113, 133, .2),
  200: const Color.fromRGBO(113, 113, 133, .3),
  300: const Color.fromRGBO(113, 113, 133, .4),
  400: const Color.fromRGBO(113, 113, 133, .5),
  500: const Color.fromRGBO(113, 113, 133, .6),
  600: const Color.fromRGBO(113, 113, 133, .7),
  700: const Color.fromRGBO(113, 113, 133, .8),
  800: const Color.fromRGBO(113, 113, 133, .9),
  900: const Color.fromRGBO(113, 113, 133, 1),
};

MaterialColor tealCustom = MaterialColor(0xFF1B81A0, tealCustomColor);
Map<int, Color> tealCustomColor = {
  //1B81A0
  50: const Color.fromRGBO(27, 129, 160, .1),
  100: const Color.fromRGBO(27, 129, 160, .2),
  200: const Color.fromRGBO(27, 129, 160, .3),
  300: const Color.fromRGBO(27, 129, 160, .4),
  400: const Color.fromRGBO(27, 129, 160, .5),
  500: const Color.fromRGBO(27, 129, 160, .6),
  600: const Color.fromRGBO(27, 129, 160, .7),
  700: const Color.fromRGBO(27, 129, 160, .8),
  800: const Color.fromRGBO(27, 129, 160, .9),
  900: const Color.fromRGBO(27, 129, 160, 1),
};

MaterialColor orangeCustom = MaterialColor(0xFFF06C00, orangeCustomColor);
Map<int, Color> orangeCustomColor = {
  //f06c00
  50: const Color.fromRGBO(240, 108, 0, .1),
  100: const Color.fromRGBO(240, 108, 0, .2),
  200: const Color.fromRGBO(240, 108, 0, .3),
  300: const Color.fromRGBO(240, 108, 0, .4),
  400: const Color.fromRGBO(240, 108, 0, .5),
  500: const Color.fromRGBO(240, 108, 0, .6),
  600: const Color.fromRGBO(240, 108, 0, .7),
  700: const Color.fromRGBO(240, 108, 0, .8),
  800: const Color.fromRGBO(240, 108, 0, .9),
  900: const Color.fromRGBO(240, 108, 0, 1),
};

MaterialColor greenCustom = MaterialColor(0xFF96D629, greenCustomColor);
Map<int, Color> greenCustomColor = {
  //96d629
  50: const Color.fromRGBO(150, 214, 41, .1),
  100: const Color.fromRGBO(150, 214, 41, .2),
  200: const Color.fromRGBO(150, 214, 41, .3),
  300: const Color.fromRGBO(150, 214, 41, .4),
  400: const Color.fromRGBO(150, 214, 41, .5),
  500: const Color.fromRGBO(150, 214, 41, .6),
  600: const Color.fromRGBO(150, 214, 41, .7),
  700: const Color.fromRGBO(150, 214, 41, .8),
  800: const Color.fromRGBO(150, 214, 41, .9),
  900: const Color.fromRGBO(150, 214, 41, 1),
};

MaterialColor greyCustom = MaterialColor(0xFF8D8D8D, greyCustomColor);
Map<int, Color> greyCustomColor = {
  //8d8d8d
  50: const Color.fromRGBO(141, 141, 141, .1),
  100: const Color.fromRGBO(141, 141, 141, .2),
  200: const Color.fromRGBO(141, 141, 141, .3),
  300: const Color.fromRGBO(141, 141, 141, .4),
  400: const Color.fromRGBO(141, 141, 141, .5),
  500: const Color.fromRGBO(141, 141, 141, .6),
  600: const Color.fromRGBO(141, 141, 141, .7),
  700: const Color.fromRGBO(141, 141, 141, .8),
  800: const Color.fromRGBO(141, 141, 141, .9),
  900: const Color.fromRGBO(141, 141, 141, 1),
};

MaterialColor redCustom = MaterialColor(0xFFBA0000, redCustomColor);
Map<int, Color> redCustomColor = {
  //ba0000
  50: const Color.fromRGBO(186, 0, 0, .1),
  100: const Color.fromRGBO(186, 0, 0, .2),
  200: const Color.fromRGBO(186, 0, 0, .3),
  300: const Color.fromRGBO(186, 0, 0, .4),
  400: const Color.fromRGBO(186, 0, 0, .5),
  500: const Color.fromRGBO(186, 0, 0, .6),
  600: const Color.fromRGBO(186, 0, 0, .7),
  700: const Color.fromRGBO(186, 0, 0, .8),
  800: const Color.fromRGBO(186, 0, 0, .9),
  900: const Color.fromRGBO(186, 0, 0, 1),
};

MaterialColor landingCustom = MaterialColor(0xFFD8DFDC, landingCustomColor);
Map<int, Color> landingCustomColor = {
  //d8dfdc
  50: const Color.fromRGBO(216, 223, 220, .1),
  100: const Color.fromRGBO(216, 223, 220, .2),
  200: const Color.fromRGBO(216, 223, 220, .3),
  300: const Color.fromRGBO(216, 223, 220, .4),
  400: const Color.fromRGBO(216, 223, 220, .5),
  500: const Color.fromRGBO(216, 223, 220, .6),
  600: const Color.fromRGBO(216, 223, 220, .7),
  700: const Color.fromRGBO(216, 223, 220, .8),
  800: const Color.fromRGBO(216, 223, 220, .9),
  900: const Color.fromRGBO(216, 223, 220, 1),
};

@github-actions github-actions bot removed the waiting for customer response The Flutter team cannot make further progress on this issue until the original reporter responds label Dec 8, 2022
@exaby73
Copy link
Member

exaby73 commented Dec 9, 2022

@SwiftyFlow The code you provided is long and complex. Please try to simplify the example you are providing to have the minimal code to reproduce this issue

@exaby73 exaby73 added the waiting for customer response The Flutter team cannot make further progress on this issue until the original reporter responds label Dec 9, 2022
@SwiftyFlow
Copy link
Author

If I don't give the full logic how can we spot the error?

@github-actions github-actions bot removed the waiting for customer response The Flutter team cannot make further progress on this issue until the original reporter responds label Dec 10, 2022
@SwiftyFlow
Copy link
Author

SwiftyFlow commented Dec 10, 2022

Code Sample
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();

  SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]).then((_) {
    runApp(const MyApp());
  });
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        appBarTheme: const AppBarTheme(systemOverlayStyle: SystemUiOverlayStyle.light),
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
      routes: {
        SecondScreen.routeName: (ctx) => const SecondScreen(),
      },
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text(widget.title),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              const Padding(
                padding: EdgeInsets.all(20),
                child: Text(
                  'This screen should not rotate. Notice some kind of glitch when coming back from second screen in landscape. And also if coming back in portrait but then tries to rotate in landscape here.',
                  textAlign: TextAlign.center,
                ),
              ),
              ElevatedButton(
                onPressed: () {
                  Navigator.of(context).pushNamed(SecondScreen.routeName);
                },
                child: const Text('Go to second screen'),
              )
            ],
          ),
        ));
  }
}

class SecondScreen extends StatefulWidget {
  static const routeName = '/second-screen';

  const SecondScreen({Key? key}) : super(key: key);

  @override
  State<SecondScreen> createState() => _SecondScreenState();
}

class _SecondScreenState extends State<SecondScreen> {
  @override
  void initState() {
    super.initState();

    SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp, DeviceOrientation.landscapeRight, DeviceOrientation.landscapeLeft]);
  }

  @override
  void dispose() {
    SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);

    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Second Screen'),
      ),
      body: const Center(
        child: Padding(
          padding: EdgeInsets.symmetric(horizontal: 20),
          child: Text(
            'Only this screen should be able to rotate but it only does the very first time it shows. Never after...\n\nOnly fix: fully restart the app.',
            textAlign: TextAlign.center,
          ),
        ),
      ),
    );
  }
}

@SwiftyFlow
Copy link
Author

Colours removed that's all I can do

@exaby73
Copy link
Member

exaby73 commented Dec 12, 2022

Triage report

I can reproduce this issue on Master (3.7.0-5.0.pre.26) on iOS only

Code Sample (Same as OP)
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();

  SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]).then((_) {
    runApp(const MyApp());
  });
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        appBarTheme: const AppBarTheme(systemOverlayStyle: SystemUiOverlayStyle.light),
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
      routes: {
        SecondScreen.routeName: (ctx) => const SecondScreen(),
      },
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text(widget.title),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              const Padding(
                padding: EdgeInsets.all(20),
                child: Text(
                  'This screen should not rotate. Notice some kind of glitch when coming back from second screen in landscape. And also if coming back in portrait but then tries to rotate in landscape here.',
                  textAlign: TextAlign.center,
                ),
              ),
              ElevatedButton(
                onPressed: () {
                  Navigator.of(context).pushNamed(SecondScreen.routeName);
                },
                child: const Text('Go to second screen'),
              )
            ],
          ),
        ));
  }
}

class SecondScreen extends StatefulWidget {
  static const routeName = '/second-screen';

  const SecondScreen({Key? key}) : super(key: key);

  @override
  State<SecondScreen> createState() => _SecondScreenState();
}

class _SecondScreenState extends State<SecondScreen> {
  @override
  void initState() {
    super.initState();

    SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp, DeviceOrientation.landscapeRight, DeviceOrientation.landscapeLeft]);
  }

  @override
  void dispose() {
    SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);

    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Second Screen'),
      ),
      body: const Center(
        child: Padding(
          padding: EdgeInsets.symmetric(horizontal: 20),
          child: Text(
            'Only this screen should be able to rotate but it only does the very first time it shows. Never after...\n\nOnly fix: fully restart the app.',
            textAlign: TextAlign.center,
          ),
        ),
      ),
    );
  }
}

@exaby73 exaby73 added platform-ios iOS applications specifically framework flutter/packages/flutter repository. See also f: labels. a: layout SystemChrome and Framework's Layout Issues has reproducible steps The issue has been confirmed reproducible and is ready to work on found in release: 3.3 Found to occur in 3.3 found in release: 3.7 Found to occur in 3.7 and removed in triage Presently being triaged by the triage team labels Dec 12, 2022
@jmagman jmagman self-assigned this Dec 12, 2022
@jmagman jmagman added P1 High-priority issues at the top of the work list engine flutter/engine repository. See also e: labels. and removed framework flutter/packages/flutter repository. See also f: labels. labels Dec 12, 2022
@jmagman
Copy link
Member

jmagman commented Dec 12, 2022

Related to flutter/engine#36874

@SwiftyFlow
Copy link
Author

I don't really get what I need to do...

@jmagman
Copy link
Member

jmagman commented Dec 13, 2022

@SwiftyFlow thank you for the detailed report, you made it easy to track down! The fix has merged at flutter/engine#38230, and you can follow the instructions at https://github.com/flutter/flutter/wiki/Where's-my-Commit%3F#finding-the-framework-commit-that-contains-engine-commit-x to monitor when it will be available in Flutter. If you validate the fix, let us know here, otherwise there's nothing more for you to do. 🙂

@exaby73 exaby73 added the r: fixed Issue is closed as already fixed in a newer version label Feb 17, 2023
@github-actions
Copy link

github-actions bot commented Mar 3, 2023

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 3, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
a: layout SystemChrome and Framework's Layout Issues engine flutter/engine repository. See also e: labels. found in release: 3.3 Found to occur in 3.3 found in release: 3.7 Found to occur in 3.7 has reproducible steps The issue has been confirmed reproducible and is ready to work on P1 High-priority issues at the top of the work list platform-ios iOS applications specifically r: fixed Issue is closed as already fixed in a newer version
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants