commit 097b17f7322609f2de6ea92f3ea6f1d0065bdea0
Author: Richard Heck <[email protected]>
Date:   Mon Jun 6 19:36:27 2016 -0400

    Restore last selected label when using the "go to label" feature
    of the reference dialog.
    
    (cherry picked from commit 9d5ffa8e752213379d0ff611bd16deec1ab21c0a)

diff --git a/src/frontends/qt4/GuiRef.cpp b/src/frontends/qt4/GuiRef.cpp
index 1150d58..555ccce 100644
--- a/src/frontends/qt4/GuiRef.cpp
+++ b/src/frontends/qt4/GuiRef.cpp
@@ -114,7 +114,13 @@ void GuiRef::changed_adaptor()
 
 void GuiRef::gotoClicked()
 {
+       // By setting last_reference_, we ensure that the reference
+       // to which we are going (or from which we are returning) is
+       // restored in the dialog. It's a bit of a hack, but it works,
+       // and no-one seems to have any better idea.
+       last_reference_ = referenceED->text();
        gotoRef();
+       last_reference_.clear();
 }
 
 
@@ -417,19 +423,18 @@ void GuiRef::redoRefs()
                refsTW->addTopLevelItems(refsItems);
        }
 
-       referenceED->setText(oldSelection);
-
        // restore the last selection or, for new insets, highlight
        // the previous selection
        if (!oldSelection.isEmpty() || !last_reference_.isEmpty()) {
                bool const newInset = oldSelection.isEmpty();
                QString textToFind = newInset ? last_reference_ : oldSelection;
+               referenceED->setText(textToFind);
                last_reference_.clear();
                QTreeWidgetItemIterator it(refsTW);
                while (*it) {
                        if ((*it)->text(0) == textToFind) {
                                refsTW->setCurrentItem(*it);
-                               refsTW->setItemSelected(*it, !newInset);
+                               refsTW->setItemSelected(*it, true);
                                //Make sure selected item is visible
                                refsTW->scrollToItem(*it);
                                last_reference_ = textToFind;
diff --git a/status.22x b/status.22x
index 1f25c54..0760d12 100644
--- a/status.22x
+++ b/status.22x
@@ -35,6 +35,9 @@ What's new
 - Implement "Dissolve Inset" and "Show Label" context menu items for
   arguments (bug 10150).
 
+- Restore selected reference when using "Go to label" and "Go back" in the
+  cross-reference dialog.
+
 
 * DOCUMENTATION AND LOCALIZATION
 

Reply via email to