diff -r 89e065397ea6 -r e24348a560a6 src/gui/graphicsview/qgraphicsscene.cpp --- a/src/gui/graphicsview/qgraphicsscene.cpp Thu May 27 13:40:48 2010 +0300 +++ b/src/gui/graphicsview/qgraphicsscene.cpp Fri Jun 11 14:24:45 2010 +0300 @@ -693,6 +693,14 @@ --selectionChanging; if (!selectionChanging && selectedItems.size() != oldSelectedItemsSize) emit q->selectionChanged(); + + QHash::iterator it; + for (it = gestureTargets.begin(); it != gestureTargets.end();) { + if (it.value() == item) + it = gestureTargets.erase(it); + else + ++it; + } } /*! @@ -808,13 +816,13 @@ #endif //QT_NO_IM } + if (item) + focusItem = item; + updateInputMethodSensitivityInViews(); if (item) { - focusItem = item; QFocusEvent event(QEvent::FocusIn, focusReason); sendEvent(item, &event); } - - updateInputMethodSensitivityInViews(); } /*!