@@ -37,24 +37,24 @@ bool Cursor::pointOverCursor(QPoint point)
3737 return range.contains (fromPoint (point));
3838}
3939
40- bool Cursor::mouseEvent (QEvent::Type type, QMouseEvent event)
40+ bool Cursor::mouseEvent (QEvent::Type type, QMouseEvent * event)
4141{
4242 // If the mouse pointer moves over a cursor, display a resize pointer
43- if (pointOverCursor (event. pos ()) && type != QEvent::Leave ) {
44- if (!cursorOverrided ) {
45- cursorOverrided = true ;
43+ if (pointOverCursor (event-> pos ())) {
44+ if (!cursorOverriden ) {
45+ cursorOverriden = true ;
4646 QApplication::setOverrideCursor (QCursor (cursorShape));
4747 }
48- // Restore pointer if it moves off the cursor, or leaves the widget
49- } else if (cursorOverrided ) {
50- cursorOverrided = false ;
48+ // Restore pointer if it moves off the cursor
49+ } else if (cursorOverriden ) {
50+ cursorOverriden = false ;
5151 QApplication::restoreOverrideCursor ();
5252 }
5353
5454 // Start dragging on left mouse button press, if over a cursor
5555 if (type == QEvent::MouseButtonPress) {
56- if (event. button () == Qt::LeftButton) {
57- if (pointOverCursor (event. pos ())) {
56+ if (event-> button () == Qt::LeftButton) {
57+ if (pointOverCursor (event-> pos ())) {
5858 dragging = true ;
5959 return true ;
6060 }
@@ -63,20 +63,28 @@ bool Cursor::mouseEvent(QEvent::Type type, QMouseEvent event)
6363 // Update current cursor position if we're dragging
6464 } else if (type == QEvent::MouseMove) {
6565 if (dragging) {
66- cursorPosition = fromPoint (event. pos ());
66+ cursorPosition = fromPoint (event-> pos ());
6767 emit posChanged ();
6868 }
6969
7070 // Stop dragging on left mouse button release
7171 } else if (type == QEvent::MouseButtonRelease) {
72- if (event. button () == Qt::LeftButton && dragging) {
72+ if (event-> button () == Qt::LeftButton && dragging) {
7373 dragging = false ;
7474 return true ;
7575 }
7676 }
7777 return false ;
7878}
7979
80+ void Cursor::leaveEvent ()
81+ {
82+ if (cursorOverriden) {
83+ cursorOverriden = false ;
84+ QApplication::restoreOverrideCursor ();
85+ }
86+ }
87+
8088int Cursor::pos ()
8189{
8290 return cursorPosition;
0 commit comments