From 2e0b5644e17f22ef3fc24ce4c762449149b24af6 Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Tue, 5 Apr 2011 11:19:20 +0200 Subject: Mac: p2 combobox regression fix The combobox popup on mac fails to re-highlight the last item in the list when then mouse leaves the popup, and re-enter. We tried to fix this in 780b4d84, but is turned out to break the cleanlooks style. For this second try, we allow the code to set the index under mouse when the mouse hovers an item in the list, even if the index is current. It seems to cause low overhead, and should be safe. Task-number: QTBUG-17738 Reviewed-by: jbache --- src/gui/widgets/qcombobox.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/widgets/qcombobox.cpp b/src/gui/widgets/qcombobox.cpp index dbbf49a..1c0a529 100644 --- a/src/gui/widgets/qcombobox.cpp +++ b/src/gui/widgets/qcombobox.cpp @@ -398,7 +398,7 @@ void QComboBoxPrivateContainer::leaveEvent(QEvent *) #ifdef Q_WS_MAC QStyleOptionComboBox opt = comboStyleOption(); if (combo->style()->styleHint(QStyle::SH_ComboBox_Popup, &opt, combo)) - view->setCurrentIndex(QModelIndex()); + view->clearSelection(); #endif } @@ -671,8 +671,8 @@ bool QComboBoxPrivateContainer::eventFilter(QObject *o, QEvent *e) if (vector.manhattanLength() > 9 && blockMouseReleaseTimer.isActive()) blockMouseReleaseTimer.stop(); QModelIndex indexUnderMouse = view->indexAt(m->pos()); - if (indexUnderMouse.isValid() && indexUnderMouse != view->currentIndex() - && !QComboBoxDelegate::isSeparator(indexUnderMouse)) { + if (indexUnderMouse.isValid() + && !QComboBoxDelegate::isSeparator(indexUnderMouse)) { view->setCurrentIndex(indexUnderMouse); } } -- cgit v0.12