summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorOlivier Goffart <ogoffart@trolltech.com>2009-12-11 16:18:54 (GMT)
committerOlivier Goffart <ogoffart@trolltech.com>2009-12-11 16:24:52 (GMT)
commitc15c9cd2356eaeba33a5f8e62a90b0aeb45284e1 (patch)
tree6ebd8d8e7f2aaa8c477858a746e425d3aaf7c659 /src
parentf555e06c3e8eee7cc67218331562c11ad77ec9c4 (diff)
downloadQt-c15c9cd2356eaeba33a5f8e62a90b0aeb45284e1.zip
Qt-c15c9cd2356eaeba33a5f8e62a90b0aeb45284e1.tar.gz
Qt-c15c9cd2356eaeba33a5f8e62a90b0aeb45284e1.tar.bz2
Fixes cursor blinking in the QComboBox when it becomes editable while having the focus.
The lineedit has the focus because it becomes focusproxy of the QComboBox. But the focusInEvent is not called because the combobox has already the focus when setFocusProxy is called. Workaround that in the show event. Task-number: QTBUG-1949 Reviewed-by: Thierry
Diffstat (limited to 'src')
-rw-r--r--src/gui/widgets/qlineedit.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/gui/widgets/qlineedit.cpp b/src/gui/widgets/qlineedit.cpp
index 2c1acdb..15dcda2 100644
--- a/src/gui/widgets/qlineedit.cpp
+++ b/src/gui/widgets/qlineedit.cpp
@@ -1445,6 +1445,16 @@ bool QLineEdit::event(QEvent * e)
d->control->processEvent(e);
} else if (e->type() == QEvent::KeyRelease) {
d->control->setCursorBlinkPeriod(QApplication::cursorFlashTime());
+ } else if (e->type() == QEvent::Show) {
+ //In order to get the cursor blinking if QComboBox::setEditable is called when the combobox has focus
+ if (hasFocus()) {
+ d->control->setCursorBlinkPeriod(QApplication::cursorFlashTime());
+ QStyleOptionFrameV2 opt;
+ initStyleOption(&opt);
+ if ((!hasSelectedText() && d->control->preeditAreaText().isEmpty())
+ || style()->styleHint(QStyle::SH_BlinkCursorWhenTextSelected, &opt, this))
+ d->setCursorVisible(true);
+ }
}
#ifdef QT_KEYPAD_NAVIGATION