From edfdab22ae59d7adf95adc4428ac26095298814f Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Tue, 21 Oct 2008 20:52:24 +0000 Subject: [PATCH] track focusOutEvents in order to unhide cursor in certain situations git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1791 0778d3d1-df1d-0410-868b-ea421aaaa00d --- ChangeLog | 6 ++++++ include/knob.h | 1 + src/gui/widgets/knob.cpp | 14 +++++++++++++- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index bec7fd703..039df489a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-10-21 Tobias Doerffel + + * include/knob.h: + * src/gui/widgets/knob.cpp: + track focusOutEvents in order to unhide cursor in certain situations + 2008-10-20 Tobias Doerffel * CMakeLists.txt: diff --git a/include/knob.h b/include/knob.h index 90260fd93..36bbfbeee 100644 --- a/include/knob.h +++ b/include/knob.h @@ -104,6 +104,7 @@ protected: virtual void contextMenuEvent( QContextMenuEvent * _me ); virtual void dragEnterEvent( QDragEnterEvent * _dee ); virtual void dropEvent( QDropEvent * _de ); + virtual void focusOutEvent( QFocusEvent * _fe ); virtual void mousePressEvent( QMouseEvent * _me ); virtual void mouseReleaseEvent( QMouseEvent * _me ); virtual void mouseMoveEvent( QMouseEvent * _me ); diff --git a/src/gui/widgets/knob.cpp b/src/gui/widgets/knob.cpp index d02c65590..bf8d05b6d 100644 --- a/src/gui/widgets/knob.cpp +++ b/src/gui/widgets/knob.cpp @@ -77,7 +77,8 @@ knob::knob( int _knob_num, QWidget * _parent, const QString & _name ) : setAccessibleName( _name ); - if( m_knobNum != knobStyled ) { + if( m_knobNum != knobStyled ) + { m_knobPixmap = new QPixmap( embed::getIconPixmap( QString( "knob0" + QString::number( m_knobNum + 1 ) ).toAscii().constData() ) ); @@ -86,6 +87,7 @@ knob::knob( int _knob_num, QWidget * _parent, const QString & _name ) : setTotalAngle( 270.0f ); setInnerRadius( 1.0f ); setOuterRadius( 10.0f ); + setFocusPolicy( Qt::ClickFocus ); doConnections(); } @@ -501,6 +503,16 @@ void knob::mouseReleaseEvent( QMouseEvent * /* _me*/ ) +void knob::focusOutEvent( QFocusEvent * _fe ) +{ + // make sure we don't loose mouse release event + mouseReleaseEvent( NULL ); + QWidget::focusOutEvent( _fe ); +} + + + + void knob::mouseDoubleClickEvent( QMouseEvent * ) { enterValue();