From 3d2aae0766eceb3554f12c8ee8a46881645eef06 Mon Sep 17 00:00:00 2001
From: Thomas Hartmann <Thomas.Hartmann@nokia.com>
Date: Thu, 4 Nov 2010 10:26:50 +0100
Subject: [PATCH] QuickToolBars: fix cursor on Mac OS X

We have to set the cursor on Mac OS X
manually in enter and leave events.

Task-number: QTCREATORBUG-2622
Reviewed-by: Kai Koehne
---
 src/libs/qmleditorwidgets/contextpanewidget.cpp | 17 +++++++++++++++++
 src/libs/qmleditorwidgets/contextpanewidget.h   |  2 ++
 src/libs/qmleditorwidgets/customcolordialog.cpp | 15 +++++++++++++++
 src/libs/qmleditorwidgets/customcolordialog.h   |  2 ++
 4 files changed, 36 insertions(+)

diff --git a/src/libs/qmleditorwidgets/contextpanewidget.cpp b/src/libs/qmleditorwidgets/contextpanewidget.cpp
index b043931142b..33676a49063 100644
--- a/src/libs/qmleditorwidgets/contextpanewidget.cpp
+++ b/src/libs/qmleditorwidgets/contextpanewidget.cpp
@@ -165,6 +165,20 @@ void DragWidget::protectedMoved()
 
 }
 
+void DragWidget::leaveEvent(QEvent *)
+{
+#ifdef Q_WS_MAC
+    unsetCursor();
+#endif
+}
+
+void DragWidget::enterEvent(QEvent *)
+{
+#ifdef Q_WS_MAC
+    setCursor(Qt::ArrowCursor);
+#endif
+}
+
 ContextPaneWidget::ContextPaneWidget(QWidget *parent) : DragWidget(parent), m_currentWidget(0)
 {
     QGridLayout *layout = new QGridLayout(this);
@@ -208,6 +222,9 @@ ContextPaneWidget::ContextPaneWidget(QWidget *parent) : DragWidget(parent), m_cu
     m_disableAction->setCheckable(true);
     connect(m_disableAction.data(), SIGNAL(toggled(bool)), this, SLOT(onDisable(bool)));
     m_pinned = false;
+#ifdef Q_WS_MAC
+    setCursor(Qt::ArrowCursor);
+#endif
 }
 
 ContextPaneWidget::~ContextPaneWidget()
diff --git a/src/libs/qmleditorwidgets/contextpanewidget.h b/src/libs/qmleditorwidgets/contextpanewidget.h
index d7d4d83b470..ede3e2178a4 100644
--- a/src/libs/qmleditorwidgets/contextpanewidget.h
+++ b/src/libs/qmleditorwidgets/contextpanewidget.h
@@ -64,6 +64,8 @@ protected:
     void mouseReleaseEvent(QMouseEvent * event);
     void mouseMoveEvent(QMouseEvent * event);
     void virtual protectedMoved();
+    void leaveEvent(QEvent *);
+    void enterEvent(QEvent *);
 
 private:
     QGraphicsDropShadowEffect *m_dropShadowEffect;
diff --git a/src/libs/qmleditorwidgets/customcolordialog.cpp b/src/libs/qmleditorwidgets/customcolordialog.cpp
index a698f540ef5..aea17bf9189 100644
--- a/src/libs/qmleditorwidgets/customcolordialog.cpp
+++ b/src/libs/qmleditorwidgets/customcolordialog.cpp
@@ -177,4 +177,19 @@ void CustomColorDialog::setupWidgets()
     m_blockUpdate = false;
 }
 
+void CustomColorDialog::leaveEvent(QEvent *)
+{
+#ifdef Q_WS_MAC
+    unsetCursor();
+#endif
+}
+
+void CustomColorDialog::enterEvent(QEvent *)
+{
+#ifdef Q_WS_MAC
+    setCursor(Qt::ArrowCursor);
+#endif
+}
+
+
 } //QmlEditorWidgets
diff --git a/src/libs/qmleditorwidgets/customcolordialog.h b/src/libs/qmleditorwidgets/customcolordialog.h
index a017280d8d6..ea38b0da739 100644
--- a/src/libs/qmleditorwidgets/customcolordialog.h
+++ b/src/libs/qmleditorwidgets/customcolordialog.h
@@ -89,6 +89,8 @@ signals:
 
 protected:
     void setupWidgets();
+    void leaveEvent(QEvent *);
+    void enterEvent(QEvent *);
 
 private:
     QFrame *m_beforeColorWidget;
-- 
GitLab