diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt index 141918a319..1e928232f0 100644 --- a/tools/lammps-gui/CMakeLists.txt +++ b/tools/lammps-gui/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.16) -project(lammps-gui VERSION 1.5.11 LANGUAGES CXX) +project(lammps-gui VERSION 1.5.12 LANGUAGES CXX) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) diff --git a/tools/lammps-gui/codeeditor.cpp b/tools/lammps-gui/codeeditor.cpp index 1762b0e496..9df2fc0124 100644 --- a/tools/lammps-gui/codeeditor.cpp +++ b/tools/lammps-gui/codeeditor.cpp @@ -582,7 +582,9 @@ void CodeEditor::keyPressEvent(QKeyEvent *event) if (line[begin].isSpace()) break; --begin; } - if (((cursor.positionInBlock() - begin) > 2) || (line[begin + 1] == '$')) runCompletion(); + if (((cursor.positionInBlock() - begin) > 2) || + ((line.length() > begin + 1) && (line[begin + 1] == '$'))) + runCompletion(); if (current_comp && current_comp->popup()->isVisible() && ((cursor.positionInBlock() - begin) < 2)) { current_comp->popup()->hide(); @@ -620,7 +622,7 @@ void CodeEditor::dropEvent(QDropEvent *event) if (event->mimeData()->hasUrls()) { event->accept(); auto file = event->mimeData()->urls()[0].toLocalFile(); - auto *gui = dynamic_cast(parent()); + auto *gui = dynamic_cast(parent()); if (gui) { moveCursor(QTextCursor::Start, QTextCursor::MoveAnchor); gui->open_file(file); @@ -1093,11 +1095,12 @@ void CodeEditor::insertCompletedCommand(const QString &completion) // special characters as part of a word. auto cursor = textCursor(); auto line = cursor.block().text(); - int begin = cursor.positionInBlock(); - do { + int begin = qMin(cursor.positionInBlock(), line.length() - 1); + + while (begin >= 0) { if (line[begin].isSpace()) break; --begin; - } while (begin >= 0); + } int end = begin + 1; while (end < line.length()) {