diff --git a/src/BaseEngine.cpp b/src/BaseEngine.cpp index 6a55f21..503157b 100755 --- a/src/BaseEngine.cpp +++ b/src/BaseEngine.cpp @@ -23,7 +23,7 @@ void BaseEngine::onKeyPressed(ofKeyEventArgs& event) void BaseEngine::onMouseDragged(ofMouseEventArgs& event) { - mouseDragged = true; + mouseReleased = false; } void BaseEngine::onMousePressed(ofMouseEventArgs& event) @@ -31,12 +31,13 @@ void BaseEngine::onMousePressed(ofMouseEventArgs& event) if(event.button >= 0 && event.button < 5) { mousePressed[event.button] = true; + mouseReleased = false; } } void BaseEngine::onMouseReleased(ofMouseEventArgs& event) { - mouseDragged = false; + mouseReleased = true; } void BaseEngine::onMouseScrolled(ofMouseEventArgs& event) diff --git a/src/BaseEngine.h b/src/BaseEngine.h index 16e8264..d86a7e7 100755 --- a/src/BaseEngine.h +++ b/src/BaseEngine.h @@ -46,7 +46,7 @@ class BaseEngine static unsigned int g_ElementsHandle; bool mousePressed[5] = {false}; - bool mouseDragged = false; + bool mouseReleased = true; protected: bool isSetup; }; diff --git a/src/EngineGLFW.cpp b/src/EngineGLFW.cpp index 0d3de5c..083d34a 100755 --- a/src/EngineGLFW.cpp +++ b/src/EngineGLFW.cpp @@ -108,6 +108,7 @@ void EngineGLFW::onMousePressed(ofMouseEventArgs& event) { remapToGLFWConvention(button); mousePressed[button] = true; + mouseReleased = false; } } diff --git a/src/ofxImGui.cpp b/src/ofxImGui.cpp index 1f5705d..147c245 100755 --- a/src/ofxImGui.cpp +++ b/src/ofxImGui.cpp @@ -125,7 +125,9 @@ void ofxImGui::begin() io.MousePos = ImVec2((float)ofGetMouseX(), (float)ofGetMouseY()); for(int i = 0; i < 5; i++){ io.MouseDown[i] = engine->mousePressed[i]; - engine->mousePressed[i] = engine->mouseDragged || false; // Don't set to false if the mouse is being dragged + + // Update for next frame; set to false only if the mouse has been released + engine->mousePressed[i] = !engine->mouseReleased; } ImGui::NewFrame(); }