From ee8313de9c5ca0b04d734da01cf49a5d664d40e3 Mon Sep 17 00:00:00 2001 From: ronso0 <ronso0@mixxx.org> Date: Fri, 31 Jan 2025 21:03:40 +0100 Subject: [PATCH] Track property editor: enforce I cursor, hide while typing --- src/widget/wtrackproperty.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/widget/wtrackproperty.cpp b/src/widget/wtrackproperty.cpp index ca1f0d03ec3..22a963f7af3 100644 --- a/src/widget/wtrackproperty.cpp +++ b/src/widget/wtrackproperty.cpp @@ -362,6 +362,10 @@ bool WTrackPropertyEditor::eventFilter(QObject* pObj, QEvent* pEvent) { ControlObject::set(ConfigKey("[Library]", "refocus_prev_widget"), 1); return true; default: + // Hide mouse cursor while typing + // TODO Test if this now works on Windows, see comment in + // widget/knobeventhandler.h + setCursor(Qt::BlankCursor); break; } } else if (pEvent->type() == QEvent::FocusOut) { @@ -375,6 +379,16 @@ bool WTrackPropertyEditor::eventFilter(QObject* pObj, QEvent* pEvent) { emit commitEditorData(text()); } } + } else if (pEvent->type() == QEvent::MouseMove || + pEvent->type() == QEvent::MouseButtonPress || + pEvent->type() == QEvent::Show || + pEvent->type() == QEvent::Enter) { + // Some desktop environments show the I cursor initially + // but fall back to regular pointer on mouse move. + // Enforce I cursor while editing. + setCursor(Qt::IBeamCursor); + } else if (pEvent->type() == QEvent::Leave) { + unsetCursor(); } return QLineEdit::eventFilter(pObj, pEvent); }