From 920807d4491834cd88e545fdb930c9105d58c4cd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Mon, 22 Oct 2012 13:31:38 +0100
Subject: [PATCH] Resolves: rhbz#868479 / fdo#56281 doubled ~ in German
ok/cancel translations
We have unix-specific code adding ~ to OK/Cancel. So don't add ~ if
string already contains those.
Though its an open question if the presence of ~ is a bad thing
for the Windows case. i.e. if we should have tooling to not
allow the OK/Cancel translations to contain ~ in the first place,
of if we should drop the ifdef UNX and do it globally now
Change-Id: I461c6ac9ca574ed188f51472919be82ec582e389
---
vcl/source/control/button.cxx | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/vcl/source/control/button.cxx b/vcl/source/control/button.cxx
index 373143b..d2336ec 100644
--- a/vcl/source/control/button.cxx
+++ b/vcl/source/control/button.cxx
@@ -152,13 +152,15 @@ XubString Button::GetStandardText( StandardButtonType eButton )
sal_uInt32 nResId = aResIdAry[(sal_uInt16)eButton].nResId;
ResId aResId( nResId, *pResMgr );
aText = String( aResId );
-
- // Windows (apparently) has some magic auto-accelerator evil around
- // ok / cancel so add this only for Unix
-#ifdef UNX
- if( nResId == SV_BUTTONTEXT_OK || nResId == SV_BUTTONTEXT_CANCEL )
- aText.Insert( String::CreateFromAscii("~"), 0 );
+ if (nResId == SV_BUTTONTEXT_OK || nResId == SV_BUTTONTEXT_CANCEL)
+ {
+#ifndef WNT
+ // Windows (apparently) has some magic auto-accelerator evil around
+ // ok / cancel so add accelerators only for Unix
+ if (aText.Search(sal_Unicode('~')) == STRING_NOTFOUND)
+ aText.Insert( String::CreateFromAscii("~"), 0 );
#endif
+ }
}
else
{