From c8dd6748aa8d3ecec17af70589bdbdd5b349f7de Mon Sep 17 00:00:00 2001 From: Chinmay Garde Date: Tue, 16 Aug 2022 19:46:04 -0700 Subject: [PATCH] [Impeller] Skip all playground tests if SHIFT, SUPER, or CTRL is held. (flutter/engine#35446) --- engine/src/flutter/impeller/playground/playground.cc | 9 +++++++++ engine/src/flutter/impeller/playground/playground.h | 2 ++ .../src/flutter/impeller/playground/playground_test.cc | 5 +++++ 3 files changed, 16 insertions(+) diff --git a/engine/src/flutter/impeller/playground/playground.cc b/engine/src/flutter/impeller/playground/playground.cc index ab0457cee5a..f09fa9638d3 100644 --- a/engine/src/flutter/impeller/playground/playground.cc +++ b/engine/src/flutter/impeller/playground/playground.cc @@ -126,12 +126,21 @@ void Playground::TeardownWindow() { impl_.reset(); } +static std::atomic_bool gShouldOpenNewPlaygrounds = true; + +bool Playground::ShouldOpenNewPlaygrounds() { + return gShouldOpenNewPlaygrounds; +} + static void PlaygroundKeyCallback(GLFWwindow* window, int key, int scancode, int action, int mods) { if ((key == GLFW_KEY_ESCAPE || key == GLFW_KEY_Q) && action == GLFW_RELEASE) { + if (mods & (GLFW_MOD_CONTROL | GLFW_MOD_SUPER | GLFW_MOD_SHIFT)) { + gShouldOpenNewPlaygrounds = false; + } ::glfwSetWindowShouldClose(window, GLFW_TRUE); } } diff --git a/engine/src/flutter/impeller/playground/playground.h b/engine/src/flutter/impeller/playground/playground.h index cbb38bd423b..8b65b6f68ce 100644 --- a/engine/src/flutter/impeller/playground/playground.h +++ b/engine/src/flutter/impeller/playground/playground.h @@ -34,6 +34,8 @@ class Playground { static constexpr bool is_enabled() { return is_enabled_; } + static bool ShouldOpenNewPlaygrounds(); + void SetupWindow(PlaygroundBackend backend); void TeardownWindow(); diff --git a/engine/src/flutter/impeller/playground/playground_test.cc b/engine/src/flutter/impeller/playground/playground_test.cc index 3cb7c946a88..1627cf9a711 100644 --- a/engine/src/flutter/impeller/playground/playground_test.cc +++ b/engine/src/flutter/impeller/playground/playground_test.cc @@ -16,6 +16,11 @@ void PlaygroundTest::SetUp() { return; } + if (!Playground::ShouldOpenNewPlaygrounds()) { + GTEST_SKIP_("Skipping due to user action."); + return; + } + SetupWindow(GetParam()); }