From ca6d37202593752c0eeeb1ce56cb4d8c3baf27c0 Mon Sep 17 00:00:00 2001 From: wmayer Date: Tue, 18 Mar 2014 14:18:55 +0100 Subject: [PATCH] + fixes #0001479: 'Escape' key dismissing dialog cancels Sketch editing --- src/Mod/Sketcher/Gui/ViewProviderSketch.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index fa31df2f2..c2cf2fc19 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -132,6 +132,7 @@ struct EditData { EditData(): sketchHandler(0), editDatumDialog(false), + buttonPress(false), DragPoint(-1), DragCurve(-1), DragConstraint(-1), @@ -154,6 +155,7 @@ struct EditData { // pointer to the active handler for new sketch objects DrawSketchHandler *sketchHandler; bool editDatumDialog; + bool buttonPress; // dragged point int DragPoint; @@ -358,6 +360,14 @@ bool ViewProviderSketch::keyPressed(bool pressed, int key) } return true; } + if (edit) { + // #0001479: 'Escape' key dismissing dialog cancels Sketch editing + // If we receive a button release event but not a press event before + // then ignore this one. + if (!pressed && !edit->buttonPress) + return true; + edit->buttonPress = pressed; + } return false; } default: