summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2004-11-26 15:15:11 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2004-11-26 15:15:11 +0000
commit4b2cea0b094e356cf1645047e5232b8742754a5e (patch)
tree51370ff00c819b2abdb1ecde03225bfe3134cc10 /vcl
parentc3d27fded5cc0d13aa38bd2a5bb67eaf5d528292 (diff)
INTEGRATION: CWS vcl29 (1.183.34); FILE MERGED
2004/10/28 11:31:23 pl 1.183.34.4: RESYNC: (1.183-1.184); FILE MERGED 2004/10/21 14:32:18 pl 1.183.34.3: #i35390# hide intro window only if it is mapped 2004/10/21 10:43:05 cp 1.183.34.2: #8988# fill the buffer with an empty string in case of pure cursor traveling 2004/10/20 15:05:08 cp 1.183.34.1: #i8988 prefer keysym as the right character might not be in the current encoding
Diffstat (limited to 'vcl')
-rw-r--r--vcl/unx/source/window/salframe.cxx30
1 files changed, 23 insertions, 7 deletions
diff --git a/vcl/unx/source/window/salframe.cxx b/vcl/unx/source/window/salframe.cxx
index 4161bb5a27cf..18a1c521785c 100644
--- a/vcl/unx/source/window/salframe.cxx
+++ b/vcl/unx/source/window/salframe.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: salframe.cxx,v $
*
- * $Revision: 1.184 $
+ * $Revision: 1.185 $
*
- * last change: $Author: hr $ $Date: 2004-10-13 09:00:03 $
+ * last change: $Author: hr $ $Date: 2004-11-26 16:15:10 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -1063,7 +1063,10 @@ void X11SalFrame::Show( BOOL bVisible, BOOL /*bNoActivate*/ )
const X11SalFrame* pFrame = static_cast< const X11SalFrame* >(*it);
// look for intro bit map; if present, hide it
if( pFrame->nStyle_ & SAL_FRAME_STYLE_INTRO )
- const_cast<X11SalFrame*>(pFrame)->Show( FALSE );
+ {
+ if( pFrame->bMapped_ )
+ const_cast<X11SalFrame*>(pFrame)->Show( FALSE );
+ }
}
}
@@ -2753,11 +2756,18 @@ long X11SalFrame::HandleKeyEvent( XKeyEvent *pEvent )
// try to figure out the vcl code for the keysym
nKeyCode = pDisplay_->GetKeyCode( nKeySym, &aDummy );
+
// try to figure out a printable if XmbLookupString returns only a keysym
// and NOT a printable. Do not store it in pPrintable[0] since it is expected to
// be in system encoding, not unicode.
+ // #i8988##, if KeySym and printable look equally promising then prefer KeySym
+ // the printable is bound to the encoding so the KeySym might contain more
+ // information (in et_EE locale: "Compose + Z + <" delivers "," in printable and
+ // (the desired) Zcaron in KeySym
+
sal_Unicode nKeyString = 0x0;
- if (nLen == 0)
+ if ( (nLen == 0)
+ || ((nLen == 1) && (nKeySym > 0)) )
nKeyString = KeysymToUnicode (nKeySym);
// if we have nothing we give up
if( !nKeyCode && !nLen && !nKeyString)
@@ -2776,6 +2786,13 @@ long X11SalFrame::HandleKeyEvent( XKeyEvent *pEvent )
sal_Size nSize;
pBuffer = (sal_Unicode*) malloc( nBufferSize + 2 );
pBuffer[ 0 ] = 0;
+
+ if (nKeyString != 0)
+ {
+ pString = &nKeyString;
+ nSize = 1;
+ }
+ else
if (nLen > 0 && nEncoding != RTL_TEXTENCODING_UNICODE)
{
// create text converter
@@ -2809,10 +2826,9 @@ long X11SalFrame::HandleKeyEvent( XKeyEvent *pEvent )
nSize = nLen;
}
else
- /* if (nKeyString != 0) */
{
- pString = &nKeyString;
- nSize = 1;
+ pString = pBuffer;
+ nSize = 0;
}
DeletionListener aDeleteWatch( this );