diff options
author | Denis Dzyubenko <denis.dzyubenko@nokia.com> | 2009-06-02 14:29:57 (GMT) |
---|---|---|
committer | Denis Dzyubenko <denis.dzyubenko@nokia.com> | 2009-06-02 14:34:02 (GMT) |
commit | a5b11b9031f9a2a97b65e9a6134244249845491a (patch) | |
tree | 3e25abd2e7738d31a47ad2283c003f3109af9da5 | |
parent | ad46e77420449ede2cb6c1ea2a810a2614520db9 (diff) | |
download | Qt-a5b11b9031f9a2a97b65e9a6134244249845491a.zip Qt-a5b11b9031f9a2a97b65e9a6134244249845491a.tar.gz Qt-a5b11b9031f9a2a97b65e9a6134244249845491a.tar.bz2 |
Avoid a crash when setting a focus in a widget hierarchy containing
both visible and invisible widgets.
This is a quick hack to avoid a crash in Qt when setting a focus on a
visible widget that has invisible parent. Proper fix was committed
into master 1a7da7096bbda17197738061902f4489af234bc0, see it's
description for more details.
Task-number: 254563
Reviewed-by: Thierry Bastian
-rw-r--r-- | src/gui/kernel/qwidget.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp index bbf6758..baf3278 100644 --- a/src/gui/kernel/qwidget.cpp +++ b/src/gui/kernel/qwidget.cpp @@ -5804,8 +5804,9 @@ void QWidget::setFocus(Qt::FocusReason reason) void QWidget::clearFocus() { QWidget *w = this; - while (w && w->d_func()->focus_child == this) { - w->d_func()->focus_child = 0; + while (w) { + if (w->d_func()->focus_child == this) + w->d_func()->focus_child = 0; w = w->parentWidget(); } #ifndef QT_NO_GRAPHICSVIEW |