diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/declarative/fx/qfxtextedit.cpp | 24 | ||||
-rw-r--r-- | src/declarative/fx/qfxtextedit.h | 3 |
2 files changed, 9 insertions, 18 deletions
diff --git a/src/declarative/fx/qfxtextedit.cpp b/src/declarative/fx/qfxtextedit.cpp index a1b5484..bf7a16d 100644 --- a/src/declarative/fx/qfxtextedit.cpp +++ b/src/declarative/fx/qfxtextedit.cpp @@ -582,25 +582,17 @@ void QFxTextEdit::keyReleaseEvent(QKeyEvent *event) } /*! -\overload -Handles the given focus \a event. -*/ -void QFxTextEdit::focusInEvent(QFocusEvent *event) -{ - Q_D(QFxTextEdit); - QFxPaintedItem::focusInEvent(event); - d->control->processEvent(event, QPointF(0, 0)); -} - -/*! -\overload -Handles the given focus \a event. + \overload + Handles changing of the focus property. Focus is applied to the control + even if the edit does not have active focus. This is because things + like KeyProxy can give the behavior of focus even when activeFocus isn't + true. */ -void QFxTextEdit::focusOutEvent(QFocusEvent *event) +void QFxTextEdit::focusChanged(bool hasFocus) { Q_D(QFxTextEdit); - QFxPaintedItem::focusOutEvent(event); - d->control->processEvent(event, QPointF(0, 0)); + QFocusEvent focusEvent(hasFocus ? QEvent::FocusIn : QEvent::FocusOut); + d->control->processEvent(&focusEvent, QPointF(0, 0)); } static QMouseEvent *sceneMouseEventToMouseEvent(QGraphicsSceneMouseEvent *e) diff --git a/src/declarative/fx/qfxtextedit.h b/src/declarative/fx/qfxtextedit.h index b017635..e5e9421 100644 --- a/src/declarative/fx/qfxtextedit.h +++ b/src/declarative/fx/qfxtextedit.h @@ -161,8 +161,7 @@ protected: void keyPressEvent(QKeyEvent *); void keyReleaseEvent(QKeyEvent *); - void focusInEvent(QFocusEvent *); - void focusOutEvent(QFocusEvent *); + void focusChanged(bool); // mouse filter? void mousePressEvent(QGraphicsSceneMouseEvent *event); |