diff --git a/ui/labelslider.cpp b/ui/labelslider.cpp index 2622e3d51..92d909242 100644 --- a/ui/labelslider.cpp +++ b/ui/labelslider.cpp @@ -19,7 +19,7 @@ LabelSlider::LabelSlider(QWidget* parent) : QLabel(parent) { min_enabled = false; max_enabled = false; set_color(); - setCursor(Qt::SizeHorCursor); + set_default_cursor(); internal_value = -1; set = false; display_type = LABELSLIDER_NORMAL; @@ -109,7 +109,7 @@ void LabelSlider::set_maximum_value(double v) { void LabelSlider::mousePressEvent(QMouseEvent *ev) { // if primary button is clicked - if (ev->button() == Qt::LeftButton) { + if (ev->button() == Qt::LeftButton && !drag_start) { // store initial value to be compared while dragging drag_start_value = internal_value; @@ -134,7 +134,8 @@ void LabelSlider::mousePressEvent(QMouseEvent *ev) { if (qIsNaN(internal_value)) internal_value = 0; // hide the cursor and store information about it for dragging - qApp->setOverrideCursor(Qt::BlankCursor); + set_active_cursor(); + drag_start = true; drag_start_x = cursor().pos().x(); drag_start_y = cursor().pos().y(); @@ -180,7 +181,7 @@ void LabelSlider::mouseReleaseEvent(QMouseEvent*) { if (drag_start) { // unhide cursor - qApp->restoreOverrideCursor(); + set_default_cursor(); drag_start = false; @@ -242,5 +243,13 @@ void LabelSlider::mouseReleaseEvent(QMouseEvent*) { set_value(d, true); } } - } + } +} + +void LabelSlider::set_default_cursor() { + setCursor(Qt::SizeHorCursor); +} + +void LabelSlider::set_active_cursor() { + setCursor(Qt::BlankCursor); } diff --git a/ui/labelslider.h b/ui/labelslider.h index f671d18df..87e42fa4c 100644 --- a/ui/labelslider.h +++ b/ui/labelslider.h @@ -52,6 +52,9 @@ private: int display_type; double frame_rate; + + void set_default_cursor(); + void set_active_cursor(); signals: void valueChanged(); void clicked();