bool KoCursorPrivateAutoHideEventFilter::eventFilter( QObject *o, QEvent *e ) { Q_UNUSED(o); // o is m_widget or its viewport //Q_ASSERT( o == m_widget ); switch ( e->type() ) { case QEvent::Leave: case QEvent::FocusOut: case QEvent::WindowDeactivate: unhideCursor(); break; case QEvent::KeyPress: case QEvent::ShortcutOverride: hideCursor(); break; case QEvent::Enter: case QEvent::FocusIn: case QEvent::MouseButtonPress: case QEvent::MouseButtonRelease: case QEvent::MouseButtonDblClick: case QEvent::MouseMove: case QEvent::Show: case QEvent::Hide: case QEvent::Wheel: unhideCursor(); if ( m_widget->hasFocus() ) { m_autoHideTimer.setSingleShot( true ); m_autoHideTimer.start( KoCursorPrivate::self()->hideCursorDelay ); } break; default: break; } return false; }
bool KCursorPrivateAutoHideEventFilter::eventFilter( QObject *o, QEvent *e ) { Q_ASSERT( o == m_widget ); switch ( e->type() ) { case QEvent::Create: // Qt steals mouseTracking on create() m_widget->setMouseTracking( true ); break; case QEvent::Leave: case QEvent::FocusOut: case QEvent::WindowDeactivate: unhideCursor(); break; case QEvent::KeyPress: case QEvent::AccelOverride: hideCursor(); break; case QEvent::Enter: case QEvent::FocusIn: case QEvent::MouseButtonPress: case QEvent::MouseButtonRelease: case QEvent::MouseButtonDblClick: case QEvent::MouseMove: case QEvent::Show: case QEvent::Hide: case QEvent::Wheel: unhideCursor(); if ( m_widget->hasFocus() ) m_autoHideTimer.start( KCursorPrivate::self()->hideCursorDelay, true ); break; default: break; } return false; }