From Comment #4: I guess that QInputContext will hold a focusWidget (which has focus). In Qt,
https://bugzilla.novell.com/show_bug.cgi?id=466791 User pwu@novell.com added comment https://bugzilla.novell.com/show_bug.cgi?id=466791#c7 --- Comment #7 from Peng Wu <pwu@novell.com> 2009-02-04 01:50:35 MST --- the ~QWidget destructor will call QInputContext::widgetDestroyed at last, scim-bridge will modify internal state, and refresh the UI state. But the problem is that when QInputContext refresh the UI state, the QWidget has gone, application will crash. From QWidget::~QWidget(), we see it calls clearFocus(), which intend to clear the focusWidget in QInputContext. But look into the clearFocus function, I got confused. Here is the code:
void QWidget::clearFocus() { QWidget *w = this; while (w && w->d_func()->focus_child == this) { w->d_func()->focus_child = 0; w = w->parentWidget(); } .. I think the above code maybe confuse hasFocus to return wrong result. if (hasFocus()) { // Update proxy state QApplicationPrivate::setFocusWidget(0, Qt::OtherFocusReason);
And finally it must call qic->setFocusWidget(NULL), to prevent the above crash. But it seems not. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.