diff options
author | mae <qt-info@nokia.com> | 2011-01-06 16:19:05 +0100 |
---|---|---|
committer | mae <qt-info@nokia.com> | 2011-01-06 16:19:19 +0100 |
commit | 984f3ece26939577a0b95dc17c6e00797193e155 (patch) | |
tree | 4b52958d0ae3c09229d64712c682acdf332ba633 | |
parent | e195a27a16ddb9f3486006a4e07fc441f57cf52f (diff) |
more hacks to get input working
-rw-r--r-- | src/canvas/qxgraphicsview.cpp | 2 | ||||
-rw-r--r-- | src/graphicsitems/qxitem.cpp | 8 |
2 files changed, 7 insertions, 3 deletions
diff --git a/src/canvas/qxgraphicsview.cpp b/src/canvas/qxgraphicsview.cpp index 321f138..fa2e8dc 100644 --- a/src/canvas/qxgraphicsview.cpp +++ b/src/canvas/qxgraphicsview.cpp @@ -526,7 +526,7 @@ void QxGraphicsViewPrivate::setFocusItem(QxItem *item) if (focusItem) { focusItem->d_func()->view = q; focusItem->d_func()->inActiveFocusChain = true; - QFocusEvent event(QEvent::FocusOut, Qt::OtherFocusReason); + QFocusEvent event(QEvent::FocusIn, Qt::OtherFocusReason); QCoreApplication::sendEvent(focusItem, &event); } } diff --git a/src/graphicsitems/qxitem.cpp b/src/graphicsitems/qxitem.cpp index 5b135c4..4415324 100644 --- a/src/graphicsitems/qxitem.cpp +++ b/src/graphicsitems/qxitem.cpp @@ -1414,10 +1414,14 @@ void QxItem::setFocus(Qt::FocusReason) p = p->d_func()->parentItem; } - if (!d->view) + QxGraphicsView *view = d->view; + if (!view && qApp) + view = qobject_cast<QxGraphicsView *>(QApplication::focusWidget()); + + if (!view) return; - QxGraphicsViewPrivate::get(d->view)->setFocusItem(this); + QxGraphicsViewPrivate::get(view)->setFocusItem(this); } void QxItem::clearFocus() |