From 42a77316ba58cae9f9cedb5e28ad6544c1304ad0 Mon Sep 17 00:00:00 2001
From: Enrico Turri <enricoturri@seznam.cz>
Date: Fri, 19 Oct 2018 13:26:42 +0200
Subject: [PATCH] Planes of gizmo flatten visible from both sides

---
 src/slic3r/GUI/GLCanvas3D.cpp | 4 ++--
 src/slic3r/GUI/GLGizmo.cpp    | 5 +++++
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp
index 6dce5cd16..05ac0c74f 100644
--- a/src/slic3r/GUI/GLCanvas3D.cpp
+++ b/src/slic3r/GUI/GLCanvas3D.cpp
@@ -3941,9 +3941,9 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
         }
 #endif // ENABLE_EXTENDED_SELECTION
 #if ENABLE_EXTENDED_SELECTION
-        else if (!m_selection.is_empty() && m_gizmos.grabber_contains_mouse())
+        else if (evt.LeftDown() && !m_selection.is_empty() && m_gizmos.grabber_contains_mouse())
 #else
-        else if ((selected_object_idx != -1) && m_gizmos.grabber_contains_mouse())
+        else if (evt.LeftDown() && (selected_object_idx != -1) && m_gizmos.grabber_contains_mouse())
 #endif // ENABLE_EXTENDED_SELECTION
         {
             update_gizmos_data();
diff --git a/src/slic3r/GUI/GLGizmo.cpp b/src/slic3r/GUI/GLGizmo.cpp
index 8783e0046..2f75d43fd 100644
--- a/src/slic3r/GUI/GLGizmo.cpp
+++ b/src/slic3r/GUI/GLGizmo.cpp
@@ -1474,6 +1474,7 @@ void GLGizmoFlatten::on_render(const BoundingBoxf3& box) const
 
     ::glEnable(GL_BLEND);
     ::glEnable(GL_DEPTH_TEST);
+    ::glDisable(GL_CULL_FACE);
 
     for (int i=0; i<(int)m_planes.size(); ++i) {
         if (i == m_hover_id)
@@ -1512,6 +1513,7 @@ void GLGizmoFlatten::on_render(const BoundingBoxf3& box) const
 #endif // ENABLE_EXTENDED_SELECTION
     }
 
+    ::glEnable(GL_CULL_FACE);
     ::glDisable(GL_BLEND);
 }
 
@@ -1522,6 +1524,7 @@ void GLGizmoFlatten::on_render_for_picking(const BoundingBoxf3& box) const
 #endif // ENABLE_EXTENDED_SELECTION
 {
     ::glEnable(GL_DEPTH_TEST);
+    ::glDisable(GL_CULL_FACE);
 
     for (unsigned int i = 0; i < m_planes.size(); ++i)
     {
@@ -1552,6 +1555,8 @@ void GLGizmoFlatten::on_render_for_picking(const BoundingBoxf3& box) const
         }
 #endif // ENABLE_EXTENDED_SELECTION
     }
+
+    ::glEnable(GL_CULL_FACE);
 }
 
 void GLGizmoFlatten::set_flattening_data(const ModelObject* model_object)