[Libreoffice-commits] core.git: vcl/unx

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Tue Jun 15 16:07:29 UTC 2021


 vcl/unx/gtk4/convert3to4.cxx |   10 ++++++++++
 1 file changed, 10 insertions(+)

New commits:
commit 4364dc21ee184da9f773efbf7b9177d59f5096f1
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Tue Jun 15 15:55:03 2021 +0100
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Tue Jun 15 18:06:39 2021 +0200

    gtk4: double-encode ampersand if use-underline is used
    
    as seen in calc paste special dialog
    
    see https://gitlab.gnome.org/GNOME/gtk/-/issues/4041
    
    Change-Id: I5425d1f5b5474fc6cda949e8fcb76b734ab893e8
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117259
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/vcl/unx/gtk4/convert3to4.cxx b/vcl/unx/gtk4/convert3to4.cxx
index 2f9f9c44f22e..f5e75a49b1ce 100644
--- a/vcl/unx/gtk4/convert3to4.cxx
+++ b/vcl/unx/gtk4/convert3to4.cxx
@@ -1300,6 +1300,16 @@ ConvertResult Convert3To4(const css::uno::Reference<css::xml::dom::XNode>& xNode
     for (auto& xRemove : xRemoveList)
         xNode->removeChild(xRemove);
 
+    // https://gitlab.gnome.org/GNOME/gtk/-/issues/4041 double encode ampersands if use-underline is used
+    if (xPropertyLabel && bUseUnderline)
+    {
+        OString sText = xPropertyLabel->getFirstChild()->getNodeValue().toUtf8();
+        gchar* pText = g_markup_escape_text(sText.getStr(), sText.getLength());
+        xPropertyLabel->getFirstChild()->setNodeValue(
+            OUString(pText, strlen(pText), RTL_TEXTENCODING_UTF8));
+        g_free(pText);
+    }
+
     return ConvertResult(bChildCanFocus, bHasVisible, bHasIconSize, bAlwaysShowImage, bImageAtTop,
                          bUseUnderline, bVertOrientation, xPropertyLabel, xPropertyIconName);
 }


More information about the Libreoffice-commits mailing list