summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleks Kissinger <aleks0@gmail.com>2020-04-10 16:50:03 +0100
committerAleks Kissinger <aleks0@gmail.com>2020-04-10 16:50:03 +0100
commit0ca80333a1593af964a8361af72aeab37e919868 (patch)
treec3d0a24081b99fc19ae469af51229462ea723d80
parentdcb4470b8cd34cd6f12d59988c1b0af9008b3420 (diff)
check for auto-repeating key before switching tool (fixes #58)
-rw-r--r--src/gui/tikzscene.cpp39
-rw-r--r--src/gui/tikzscene.h2
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