[LyX/master] Fix bug with display of reference tooltips.
Richard Kimberly Heck
rikiheck at lyx.org
Tue Aug 6 15:32:09 UTC 2024
commit b494286a9c271b1f39d6248d977d2ef14a71f64c
Author: Richard Kimberly Heck <rikiheck at lyx.org>
Date: Tue Aug 6 11:31:35 2024 -0400
Fix bug with display of reference tooltips.
Previously, the tooltip was assigned during updateBuffer. But then
we could not determine the value for forward references.
---
src/insets/InsetRef.cpp | 35 ++++++++++++++++-------------------
1 file changed, 16 insertions(+), 19 deletions(-)
diff --git a/src/insets/InsetRef.cpp b/src/insets/InsetRef.cpp
index 2f485a6e86..593a3da6b5 100644
--- a/src/insets/InsetRef.cpp
+++ b/src/insets/InsetRef.cpp
@@ -527,21 +527,15 @@ void InsetRef::updateBuffer(ParIterator const & it, UpdateType, bool const /*del
label += "||";
label += getParam("name");
}
-
- bool const use_formatted_ref = buffer().params().use_formatted_ref;
- unsigned int const maxLabelChars = 24;
+
+ // The tooltip will be over-written later, in addToToc, if need be.
+ tooltip_ = label;
toc_string_ = label;
- // Show label in tooltip when formatted references are shown in the work
- // area or it is too long
- if (use_formatted_ref || label.size() > maxLabelChars) {
- tooltip_ = label;
- support::truncateWithEllipsis(label, maxLabelChars);
- } else {
- // put cross-reference value into tooltip
- tooltip_ = displayString(ref, cmd);
- }
+
+ unsigned int const maxLabelChars = 24;
+ support::truncateWithEllipsis(label, maxLabelChars);
- // Note: This could be changed later, in addToToc, if we are using
+ // Note: This could also be changed later, in addToToc, if we are using
// fomatted references in the work area.
screen_label_ = label;
// This also can be overwritten in addToToc. (We can't do it now
@@ -572,13 +566,16 @@ void InsetRef::addToToc(DocIterator const & cpit, bool output_active,
}
// Code for display of formatted references
- bool const use_formatted_ref = buffer().params().use_formatted_ref;
- if (use_formatted_ref) {
- string const & cmd = getCmdName();
+ string const & cmd = getCmdName();
+ if (cmd != "pageref" && cmd != "vpageref" &&
+ cmd != "vref" && cmd != "labelonly")
+ {
+ bool const use_formatted_ref = buffer().params().use_formatted_ref;
+ // We will put the value of the reference either into the tooltip
+ // or the screen label, depending.
+ docstring & target = use_formatted_ref ? screen_label_ : tooltip_;
docstring const & ref = getParam("reference");
- if (cmd != "pageref" && cmd != "vpageref" && cmd != "vref" &&
- cmd != "labelonly")
- screen_label_ = displayString(ref, cmd);
+ target = displayString(ref, cmd);
}
return;
}
More information about the lyx-cvs
mailing list