]> git.lyx.org Git - features.git/commitdiff
Revert r33630 and do something more sensible.
authorRichard Heck <rgheck@comcast.net>
Mon, 8 Mar 2010 19:52:48 +0000 (19:52 +0000)
committerRichard Heck <rgheck@comcast.net>
Mon, 8 Mar 2010 19:52:48 +0000 (19:52 +0000)
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
src/frontends/qt4/TocWidget.cpp

index b6486007fdca4eeb8fd8f13a733d8054fca6cd58..b8da14aa22d710348119565583c719257c8eb8dd 100644 (file)
@@ -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();
 }
 
 
index 738e474b157b89b9b6cb7d6605b93c67220684f1..6ea1bb93118548da6d7a0c59fca3c7d5dc06f19d 100644 (file)
@@ -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();
 }