From 79101d6e54e446810afd9d21774a40f3da42a55a Mon Sep 17 00:00:00 2001
From: enricoturri1966 <enricoturri@seznam.cz>
Date: Wed, 13 May 2020 12:30:09 +0200
Subject: [PATCH] Fixed toolbar items reacting when disabled

---
 src/slic3r/GUI/GLToolbar.cpp | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/src/slic3r/GUI/GLToolbar.cpp b/src/slic3r/GUI/GLToolbar.cpp
index 429853aaa..c69327cfa 100644
--- a/src/slic3r/GUI/GLToolbar.cpp
+++ b/src/slic3r/GUI/GLToolbar.cpp
@@ -532,7 +532,12 @@ bool GLToolbar::on_mouse(wxMouseEvent& evt, GLCanvas3D& parent)
             m_mouse_capture.left = true;
             m_mouse_capture.parent = &parent;
             processed = true;
+#if ENABLE_CANVAS_TOOLTIP_USING_IMGUI
+            if ((item_id != -2) && !m_items[item_id]->is_separator() && !m_items[item_id]->is_disabled() &&
+                ((m_pressed_toggable_id == -1) || (m_items[item_id]->get_last_action_type() == GLToolbarItem::Left)))
+#else
             if ((item_id != -2) && !m_items[item_id]->is_separator() && ((m_pressed_toggable_id == -1) || (m_items[item_id]->get_last_action_type() == GLToolbarItem::Left)))
+#endif // ENABLE_CANVAS_TOOLTIP_USING_IMGUI
             {
                 // mouse is inside an icon
                 do_action(GLToolbarItem::Left, item_id, parent, true);
@@ -549,7 +554,12 @@ bool GLToolbar::on_mouse(wxMouseEvent& evt, GLCanvas3D& parent)
             m_mouse_capture.right = true;
             m_mouse_capture.parent = &parent;
             processed = true;
+#if ENABLE_CANVAS_TOOLTIP_USING_IMGUI
+            if ((item_id != -2) && !m_items[item_id]->is_separator() && !m_items[item_id]->is_disabled() &&
+                ((m_pressed_toggable_id == -1) || (m_items[item_id]->get_last_action_type() == GLToolbarItem::Right)))
+#else
             if ((item_id != -2) && !m_items[item_id]->is_separator() && ((m_pressed_toggable_id == -1) || (m_items[item_id]->get_last_action_type() == GLToolbarItem::Right)))
+#endif // ENABLE_CANVAS_TOOLTIP_USING_IMGUI
             {
                 // mouse is inside an icon
                 do_action(GLToolbarItem::Right, item_id, parent, true);
@@ -644,7 +654,11 @@ void GLToolbar::do_action(GLToolbarItem::EActionType type, int item_id, GLCanvas
         if ((0 <= item_id) && (item_id < (int)m_items.size()))
         {
             GLToolbarItem* item = m_items[item_id];
+#if ENABLE_CANVAS_TOOLTIP_USING_IMGUI
+            if ((item != nullptr) && !item->is_separator() && !item->is_disabled() && (!check_hover || item->is_hovered()))
+#else
             if ((item != nullptr) && !item->is_separator() && (!check_hover || item->is_hovered()))
+#endif // ENABLE_CANVAS_TOOLTIP_USING_IMGUI
             {
                 if (((type == GLToolbarItem::Right) && item->is_right_toggable()) ||
                     ((type == GLToolbarItem::Left) && item->is_left_toggable()))