summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormae <qt-info@nokia.com>2011-01-06 16:19:05 +0100
committermae <qt-info@nokia.com>2011-01-06 16:19:19 +0100
commit984f3ece26939577a0b95dc17c6e00797193e155 (patch)
tree4b52958d0ae3c09229d64712c682acdf332ba633
parente195a27a16ddb9f3486006a4e07fc441f57cf52f (diff)
more hacks to get input working
-rw-r--r--src/canvas/qxgraphicsview.cpp2
-rw-r--r--src/graphicsitems/qxitem.cpp8
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()