From c653974e9dba843f377bfdc5e890328c98239028 Mon Sep 17 00:00:00 2001 From: Richard Heck Date: Mon, 8 Mar 2010 19:52:48 +0000 Subject: [PATCH] Revert r33630 and do something more sensible. I don't think this fixes the underlying problem, but I think that problem is very extensive. Fixing it would involve a re-thinking of where and how we call updateBuffer()---the old updateLabels(). This fix also reveals another problem with the TOC, again due to the early call of on_typeCO_currentIndexChanged(). But that problem is a slightly different one, I think. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33680 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/qt4/TocModel.cpp | 2 +- src/frontends/qt4/TocWidget.cpp | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/frontends/qt4/TocModel.cpp b/src/frontends/qt4/TocModel.cpp index b6486007fd..b8da14aa22 100644 --- a/src/frontends/qt4/TocModel.cpp +++ b/src/frontends/qt4/TocModel.cpp @@ -359,8 +359,8 @@ void TocModels::reset(BufferView const * bv) names_->setData(index, gui_name, Qt::DisplayRole); names_->setData(index, type, Qt::UserRole); } - names_->reset(); names_->blockSignals(false); + names_->reset(); } diff --git a/src/frontends/qt4/TocWidget.cpp b/src/frontends/qt4/TocWidget.cpp index 738e474b15..6ea1bb9311 100644 --- a/src/frontends/qt4/TocWidget.cpp +++ b/src/frontends/qt4/TocWidget.cpp @@ -315,7 +315,13 @@ void TocWidget::on_typeCO_currentIndexChanged(int index) { current_type_ = typeCO->itemData(index).toString(); updateView(); - gui_view_.setFocus(); + // In Qt 4.6.x, we can end up here programmatically, when the + // model is rebuilt. But the Buffer may not be ready for us to + // reset focus, start the cursor, etc. So we check to see if the + // combo box has focus. It will, if the user has changed the + // value. + if (typeCO->hasFocus()) + gui_view_.setFocus(); }