diff options
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/unx/generic/window/salframe.cxx | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/vcl/unx/generic/window/salframe.cxx b/vcl/unx/generic/window/salframe.cxx index 3183c0b67167..af37168137bb 100644 --- a/vcl/unx/generic/window/salframe.cxx +++ b/vcl/unx/generic/window/salframe.cxx @@ -3009,7 +3009,10 @@ long X11SalFrame::HandleKeyEvent( XKeyEvent *pEvent ) &nStatus, mpInputContext->GetContext() ); if ( nStatus == XBufferOverflow ) { - nLen *= 2; + // In case of overflow, XmbLookupString (called by GetKeySym) + // returns required size + // TODO : check if +1 is needed for 0 terminator + nLen += 1; pPrintable = static_cast<char*>(alloca( nLen )); nKeySym = pDisplay_->GetKeySym( pEvent, pPrintable, &nLen, &nUnmodifiedKeySym, |