From: Richard Kimberly Heck Date: Tue, 6 Aug 2024 15:31:35 +0000 (-0400) Subject: Fix bug with display of reference tooltips. X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=b494286a9c271b1f39d6248d977d2ef14a71f64c;p=lyx.git 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. --- 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; }