diff options
author | Aleks Kissinger <aleks0@gmail.com> | 2020-04-10 16:50:03 +0100 |
---|---|---|
committer | Aleks Kissinger <aleks0@gmail.com> | 2020-04-10 16:50:03 +0100 |
commit | 0ca80333a1593af964a8361af72aeab37e919868 (patch) | |
tree | c3d0a24081b99fc19ae469af51229462ea723d80 /src | |
parent | dcb4470b8cd34cd6f12d59988c1b0af9008b3420 (diff) |
check for auto-repeating key before switching tool (fixes #58)
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/tikzscene.cpp | 39 | ||||
-rw-r--r-- | src/gui/tikzscene.h | 2 |
2 files changed, 22 insertions, 19 deletions
diff --git a/src/gui/tikzscene.cpp b/src/gui/tikzscene.cpp index 29b007e..087f621 100644 --- a/src/gui/tikzscene.cpp +++ b/src/gui/tikzscene.cpp @@ -708,25 +708,6 @@ void TikzScene::keyReleaseEvent(QKeyEvent *event) } - if (event->key() == Qt::Key_Backspace || event->key() == Qt::Key_Delete) { - deleteSelectedItems(); - } else if (mod == Qt::NoModifier) { - switch(event->key()) { - case Qt::Key_S: - tikzit->activeWindow()->toolPalette()->setCurrentTool(ToolPalette::SELECT); - break; - case Qt::Key_V: - case Qt::Key_N: - tikzit->activeWindow()->toolPalette()->setCurrentTool(ToolPalette::VERTEX); - break; - case Qt::Key_E: - tikzit->activeWindow()->toolPalette()->setCurrentTool(ToolPalette::EDGE); - break; - case Qt::Key_B: - tikzit->activeWindow()->toolPalette()->setCurrentTool(ToolPalette::CROP); - break; - } - } foreach (QGraphicsItem *it, selectedItems()) it->update(); } @@ -861,6 +842,26 @@ void TikzScene::keyPressEvent(QKeyEvent *event) _tikzDocument->undoStack()->endMacro(); } } + } else { // no CTRL key + if (event->key() == Qt::Key_Backspace || event->key() == Qt::Key_Delete) { + deleteSelectedItems(); + } else if (!event->isAutoRepeat()) { + switch(event->key()) { + case Qt::Key_S: + tikzit->activeWindow()->toolPalette()->setCurrentTool(ToolPalette::SELECT); + break; + case Qt::Key_V: + case Qt::Key_N: + tikzit->activeWindow()->toolPalette()->setCurrentTool(ToolPalette::VERTEX); + break; + case Qt::Key_E: + tikzit->activeWindow()->toolPalette()->setCurrentTool(ToolPalette::EDGE); + break; + case Qt::Key_B: + tikzit->activeWindow()->toolPalette()->setCurrentTool(ToolPalette::CROP); + break; + } + } } foreach (QGraphicsItem *it, selectedItems()) it->update(); diff --git a/src/gui/tikzscene.h b/src/gui/tikzscene.h index 1edd50a..2e7baa5 100644 --- a/src/gui/tikzscene.h +++ b/src/gui/tikzscene.h @@ -130,6 +130,8 @@ private: bool _highlightHeads; bool _highlightTails; bool _smartTool; + + bool _ctrlWasPressed; }; #endif // TIKZSCENE_H |