diff --git a/apps/code/console_controller.cpp b/apps/code/console_controller.cpp index 92e0bc8db..344ab3dc6 100644 --- a/apps/code/console_controller.cpp +++ b/apps/code/console_controller.cpp @@ -19,6 +19,7 @@ ConsoleController::ConsoleController(Responder * parentResponder, ScriptStore * TextFieldDelegate(), MicroPython::ExecutionEnvironment(), m_rowHeight(KDText::charSize(k_fontSize).height()), + m_importScriptsWhenViewAppears(false), m_selectableTableView(this, this, 0, 1, 0, Metric::CommonRightMargin, 0, Metric::TitleBarExternHorizontalMargin, this, this, true, true, KDColorWhite), m_editCell(this, this), m_pythonHeap(nullptr), @@ -47,9 +48,7 @@ bool ConsoleController::loadPythonEnvironment(bool autoImportScripts) { } MicroPython::init(m_pythonHeap, m_pythonHeap + k_pythonHeapSize); MicroPython::registerScriptProvider(m_scriptStore); - if (autoImportScripts) { - autoImport(); - } + m_importScriptsWhenViewAppears = autoImportScripts; return true; } @@ -94,6 +93,10 @@ void ConsoleController::removeExtensionIfAny(char * name) { void ConsoleController::viewWillAppear() { assert(pythonEnvironmentIsLoaded()); m_sandboxIsDisplayed = false; + if (m_importScriptsWhenViewAppears) { + m_importScriptsWhenViewAppears = false; + autoImport(); + } m_selectableTableView.reloadData(); m_selectableTableView.selectCellAtLocation(0, m_consoleStore.numberOfLines()); m_editCell.setEditing(true); diff --git a/apps/code/console_controller.h b/apps/code/console_controller.h index 068ebdc30..1037ca76e 100644 --- a/apps/code/console_controller.h +++ b/apps/code/console_controller.h @@ -76,6 +76,7 @@ private: StackViewController * stackViewController(); bool copyCurrentLineToClipboard(); int m_rowHeight; + bool m_importScriptsWhenViewAppears; ConsoleStore m_consoleStore; SelectableTableView m_selectableTableView; ConsoleLineCell m_cells[k_numberOfLineCells]; diff --git a/apps/code/menu_controller.cpp b/apps/code/menu_controller.cpp index 0b9ebe701..807c10978 100644 --- a/apps/code/menu_controller.cpp +++ b/apps/code/menu_controller.cpp @@ -130,8 +130,8 @@ void MenuController::loadPythonIfNeeded() { void MenuController::openConsoleWithScriptAtIndex(int scriptIndex) { reloadConsole(); if (m_consoleController.loadPythonEnvironment(false)) { - m_consoleController.autoImportScriptAtIndex(scriptIndex, true); stackViewController()->push(&m_consoleController); + m_consoleController.autoImportScriptAtIndex(scriptIndex, true); } m_reloadConsoleWhenBecomingFirstResponder = true; }