View | Details | Raw Unified | Return to issue 11004
Collapse All | Expand All

(-)inc/keycod.hxx (-2 / +4 lines)
Lines 116-122 Link Here
116
				KeyCode( KeyFuncType eFunction );
116
				KeyCode( KeyFuncType eFunction );
117
117
118
	USHORT		GetFullCode() const { return nCode; }
118
	USHORT		GetFullCode() const { return nCode; }
119
	USHORT		GetFullKeyCode() const { return (nCode & ~KEY_CONTROLMOD); }
119
	USHORT		GetFullKeyCode() const { return (nCode); }
120
	KeyFuncType GetFullFunction() const { return eFunc; }
120
	KeyFuncType GetFullFunction() const { return eFunc; }
121
	BOOL		IsDefinedKeyCodeEqual( const KeyCode& rKeyCode ) const;
121
	BOOL		IsDefinedKeyCodeEqual( const KeyCode& rKeyCode ) const;
122
122
Lines 133-140 Link Here
133
					{ return ((nCode & KEY_MOD1) != 0); }
133
					{ return ((nCode & KEY_MOD1) != 0); }
134
	BOOL		IsMod2() const
134
	BOOL		IsMod2() const
135
					{ return ((nCode & KEY_MOD2) != 0); }
135
					{ return ((nCode & KEY_MOD2) != 0); }
136
        BOOL		IsMod3() const
137
					{ return ((nCode & KEY_MOD3) != 0); }
136
	BOOL		IsControlMod() const
138
	BOOL		IsControlMod() const
137
					{ return ((nCode & KEY_CONTROLMOD) != 0); }
139
					{ return (IsMod2() && !IsMod1() && !IsMod3()); }
138
140
139
	USHORT		GetGroup() const
141
	USHORT		GetGroup() const
140
					{ return (nCode & KEYGROUP_TYPE); }
142
					{ return (nCode & KEYGROUP_TYPE); }
(-)inc/keycodes.hxx (-2 / +2 lines)
Lines 192-199 Link Here
192
#define KEY_SHIFT		((USHORT)0x1000)
192
#define KEY_SHIFT		((USHORT)0x1000)
193
#define KEY_MOD1		((USHORT)0x2000)
193
#define KEY_MOD1		((USHORT)0x2000)
194
#define KEY_MOD2		((USHORT)0x4000)
194
#define KEY_MOD2		((USHORT)0x4000)
195
#define KEY_MODTYPE 	((USHORT)0x7000)
195
#define KEY_MOD3		((USHORT)0x8000)
196
#define KEY_CONTROLMOD	((USHORT)0x8000)
196
#define KEY_MODTYPE 	((USHORT)0xF000)
197
#define KEY_ALLMODTYPE	((USHORT)0xF000)
197
#define KEY_ALLMODTYPE	((USHORT)0xF000)
198
198
199
// ---------------
199
// ---------------
(-)os2/source/window/salframe.cxx (+5 lines)
Lines 1989-1998 Link Here
1989
    if ( nFlags & KC_ALT )
1989
    if ( nFlags & KC_ALT )
1990
    {
1990
    {
1991
        nModCode |= KEY_MOD2;
1991
        nModCode |= KEY_MOD2;
1992
        /*
1993
        
1994
        [ed] 1/26/03 CONTROLMOD removed.  Add MOD3 when appropriate.
1995
        
1992
        // Nur wenn nicht Control und kein auswertbarer CharCode
1996
        // Nur wenn nicht Control und kein auswertbarer CharCode
1993
        // Wegen AltGr (vorallem wegen 122-Tastaturen auch KC_CHAR testen)
1997
        // Wegen AltGr (vorallem wegen 122-Tastaturen auch KC_CHAR testen)
1994
        if ( !(nModCode & KEY_MOD1) && !(nFlags & KC_CHAR) )
1998
        if ( !(nModCode & KEY_MOD1) && !(nFlags & KC_CHAR) )
1995
            nModCode |= KEY_CONTROLMOD;
1999
            nModCode |= KEY_CONTROLMOD;
2000
        */
1996
    }
2001
    }
1997
2002
1998
    // Bei Shift, Control und Alt schicken wir einen KeyModChange-Event
2003
    // Bei Shift, Control und Alt schicken wir einen KeyModChange-Event
(-)source/window/keycod.cxx (-1 / +1 lines)
Lines 191-197 Link Here
191
	String		aName;
191
	String		aName;
192
	const int	nMods = 3;
192
	const int	nMods = 3;
193
	USHORT		nKeyCode = GetFullCode();
193
	USHORT		nKeyCode = GetFullCode();
194
	USHORT		aModifiers[nMods] = { KEY_MOD2, KEY_MOD1, KEY_SHIFT };
194
	USHORT		aModifiers[nMods] = { KEY_MOD2, KEY_MOD1, KEY_SHIFT, KEY_MOD3 };
195
	for ( USHORT n = 0; n < nMods; n++ )
195
	for ( USHORT n = 0; n < nMods; n++ )
196
	{
196
	{
197
		USHORT nMod = aModifiers[n];
197
		USHORT nMod = aModifiers[n];
(-)unx/inc/saldisp.hxx (+1 lines)
Lines 379-384 Link Here
379
    KeySym			nShiftKeySym_;		// first shift modifier
379
    KeySym			nShiftKeySym_;		// first shift modifier
380
    KeySym			nCtrlKeySym_;		// first control modifier
380
    KeySym			nCtrlKeySym_;		// first control modifier
381
    KeySym			nMod1KeySym_;		// first mod1 modifier
381
    KeySym			nMod1KeySym_;		// first mod1 modifier
382
    KeySym			nMod2KeySym_;		// first mod2 modifier
382
    ByteString		m_aKeyboardName;
383
    ByteString		m_aKeyboardName;
383
    
384
    
384
    SalBitmapList	Bitmaps_;			// to destroy bitmap resources;
385
    SalBitmapList	Bitmaps_;			// to destroy bitmap resources;
(-)unx/source/app/saldisp.cxx (-2 / +13 lines)
Lines 1273-1278 Link Here
1273
	fprintf( stderr, "Alt: %s\n", aConvert.Len() ? ByteString( aConvert, gsl_getSystemTextEncoding() ).GetBuffer() : "<nil>" );
1273
	fprintf( stderr, "Alt: %s\n", aConvert.Len() ? ByteString( aConvert, gsl_getSystemTextEncoding() ).GetBuffer() : "<nil>" );
1274
	aConvert = GetKeyNameFromKeySym( XK_Alt_R );
1274
	aConvert = GetKeyNameFromKeySym( XK_Alt_R );
1275
	fprintf( stderr, "AltGr: %s\n", aConvert.Len() ? ByteString( aConvert, gsl_getSystemTextEncoding() ).GetBuffer() : "<nil>" );
1275
	fprintf( stderr, "AltGr: %s\n", aConvert.Len() ? ByteString( aConvert, gsl_getSystemTextEncoding() ).GetBuffer() : "<nil>" );
1276
        aConvert = GetKeyNameFromKeySym( XK_Meta_L );
1277
	fprintf( stderr, "Meta: %s\n", aConvert.Len() ? ByteString( aConvert, gsl_getSystemTextEncoding() ).GetBuffer() : "<nil>" );
1278
        aConvert = GetKeyNameFromKeySym( XK_Meta_R );
1279
	fprintf( stderr, "MetaGr: %s\n", aConvert.Len() ? ByteString( aConvert, gsl_getSystemTextEncoding() ).GetBuffer() : "<nil>" );
1276
#endif
1280
#endif
1277
}
1281
}
1278
1282
Lines 1323-1329 Link Here
1323
    nShiftKeySym_   = sal_XModifier2Keysym( pDisp_, pXModMap, ShiftMapIndex );
1327
    nShiftKeySym_   = sal_XModifier2Keysym( pDisp_, pXModMap, ShiftMapIndex );
1324
    nCtrlKeySym_    = sal_XModifier2Keysym( pDisp_, pXModMap, ControlMapIndex );
1328
    nCtrlKeySym_    = sal_XModifier2Keysym( pDisp_, pXModMap, ControlMapIndex );
1325
    nMod1KeySym_    = sal_XModifier2Keysym( pDisp_, pXModMap, Mod1MapIndex );
1329
    nMod1KeySym_    = sal_XModifier2Keysym( pDisp_, pXModMap, Mod1MapIndex );
1326
1330
    nMod2KeySym_    = sal_XModifier2Keysym( pDisp_, pXModMap, Mod2MapIndex );
1331
    
1327
    // Auf Sun-Servern und SCO-Severn beruecksichtigt XLookupString
1332
    // Auf Sun-Servern und SCO-Severn beruecksichtigt XLookupString
1328
    // nicht den NumLock Modifier.
1333
    // nicht den NumLock Modifier.
1329
    if( 	(GetServerVendor() == vendor_sun) 
1334
    if( 	(GetServerVendor() == vendor_sun) 
Lines 1350-1358 Link Here
1350
XubString SalDisplay::GetKeyName( USHORT nKeyCode ) const
1355
XubString SalDisplay::GetKeyName( USHORT nKeyCode ) const
1351
{
1356
{
1352
    String aStrMap;
1357
    String aStrMap;
1353
1358
    
1359
    if( nKeyCode & KEY_MOD3 )
1360
    {
1361
        aStrMap += GetKeyNameFromKeySym( nMod2KeySym_ );
1362
    }
1354
    if( nKeyCode & KEY_MOD2 )
1363
    if( nKeyCode & KEY_MOD2 )
1355
    {
1364
    {
1365
        if( aStrMap.Len() )
1366
            aStrMap += '+';
1356
        aStrMap += GetKeyNameFromKeySym( nMod1KeySym_ );
1367
        aStrMap += GetKeyNameFromKeySym( nMod1KeySym_ );
1357
    }
1368
    }
1358
    if( nKeyCode & KEY_MOD1 )
1369
    if( nKeyCode & KEY_MOD1 )
(-)unx/source/window/salframe.cxx (-5 / +7 lines)
Lines 2291-2302 Link Here
2291
	if( pEvent->state & ControlMask )
2291
	if( pEvent->state & ControlMask )
2292
		nModCode |= KEY_MOD1;
2292
		nModCode |= KEY_MOD1;
2293
	if( pEvent->state & Mod1Mask )
2293
	if( pEvent->state & Mod1Mask )
2294
	{
2295
		nModCode |= KEY_MOD2;
2294
		nModCode |= KEY_MOD2;
2296
		if ( !(nModCode & KEY_MOD1) )
2295
        if( pEvent->state & Mod2Mask )
2297
			nModCode |= KEY_CONTROLMOD;
2296
                nModCode |= KEY_MOD3;
2298
	}
2297
        
2299
2300
	if( 	nKeySym == XK_Shift_L 	|| nKeySym == XK_Shift_R
2298
	if( 	nKeySym == XK_Shift_L 	|| nKeySym == XK_Shift_R
2301
		|| 	nKeySym == XK_Control_L || nKeySym == XK_Control_R
2299
		|| 	nKeySym == XK_Control_L || nKeySym == XK_Control_R
2302
		|| 	nKeySym == XK_Alt_L		|| nKeySym == XK_Alt_R
2300
		|| 	nKeySym == XK_Alt_L		|| nKeySym == XK_Alt_R
Lines 2316-2321 Link Here
2316
				nModCode &= ~KEY_SHIFT;
2314
				nModCode &= ~KEY_SHIFT;
2317
			if ( (nKeySym == XK_Alt_L)     || (nKeySym == XK_Alt_R) )
2315
			if ( (nKeySym == XK_Alt_L)     || (nKeySym == XK_Alt_R) )
2318
				nModCode &= ~KEY_MOD2;
2316
				nModCode &= ~KEY_MOD2;
2317
                        if ( (nKeySym == XK_Meta_L)    || (nKeySym == XK_Meta_R) )
2318
                                nModCode &= ~KEY_MOD3;
2319
		}
2319
		}
2320
		else
2320
		else
2321
		{
2321
		{
Lines 2325-2330 Link Here
2325
				nModCode |= KEY_SHIFT;
2325
				nModCode |= KEY_SHIFT;
2326
			if ( (nKeySym == XK_Alt_L)     || (nKeySym == XK_Alt_R) )
2326
			if ( (nKeySym == XK_Alt_L)     || (nKeySym == XK_Alt_R) )
2327
				nModCode |= KEY_MOD2;
2327
				nModCode |= KEY_MOD2;
2328
                        if ( (nKeySym == XK_Meta_L)    || (nKeySym == XK_Meta_R) )
2329
                                nModCode |= KEY_MOD3;
2328
		}
2330
		}
2329
2331
2330
		aModEvt.mnCode = nModCode;
2332
		aModEvt.mnCode = nModCode;
(-)win/source/window/salframe.cxx (-9 lines)
Lines 2841-2849 Link Here
2841
    if ( GetKeyState( VK_MENU ) & 0x8000 )
2841
    if ( GetKeyState( VK_MENU ) & 0x8000 )
2842
    {
2842
    {
2843
        nModCode |= KEY_MOD2;
2843
        nModCode |= KEY_MOD2;
2844
        if ( !(nModCode & KEY_MOD1) &&
2845
             ((nMsg == WM_SYSKEYDOWN) || (nMsg == WM_SYSKEYUP)) )
2846
            nModCode |= KEY_CONTROLMOD;
2847
    }
2844
    }
2848
2845
2849
    if ( (nMsg == WM_CHAR) || (nMsg == WM_SYSCHAR) )
2846
    if ( (nMsg == WM_CHAR) || (nMsg == WM_SYSCHAR) )
Lines 3023-3030 Link Here
3023
        if ( GetKeyState( VK_MENU ) & 0x8000 )
3020
        if ( GetKeyState( VK_MENU ) & 0x8000 )
3024
        {
3021
        {
3025
            nModCode |= KEY_MOD2;
3022
            nModCode |= KEY_MOD2;
3026
            if ( !(nModCode & KEY_MOD1) )
3027
                nModCode |= KEY_CONTROLMOD;
3028
        }
3023
        }
3029
3024
3030
        if ( (wParam != VK_SHIFT) && (wParam != VK_CONTROL) && (wParam != VK_MENU) )
3025
        if ( (wParam != VK_SHIFT) && (wParam != VK_CONTROL) && (wParam != VK_MENU) )
Lines 3077-3084 Link Here
3077
    if ( GetKeyState( VK_CONTROL ) & 0x8000 )
3072
    if ( GetKeyState( VK_CONTROL ) & 0x8000 )
3078
        nModCode |= KEY_MOD1;
3073
        nModCode |= KEY_MOD1;
3079
    nModCode |= KEY_MOD2;
3074
    nModCode |= KEY_MOD2;
3080
    if ( !(nModCode & KEY_MOD1) )
3081
        nModCode |= KEY_CONTROLMOD;
3082
3075
3083
    // KeyEvent zusammenbauen
3076
    // KeyEvent zusammenbauen
3084
    SalKeyEvent aKeyEvt;
3077
    SalKeyEvent aKeyEvt;
Lines 3812-3819 Link Here
3812
                    if ( GetKeyState( VK_CONTROL ) & 0x8000 )
3805
                    if ( GetKeyState( VK_CONTROL ) & 0x8000 )
3813
                        nModCode |= KEY_MOD1;
3806
                        nModCode |= KEY_MOD1;
3814
                    nModCode |= KEY_MOD2;
3807
                    nModCode |= KEY_MOD2;
3815
                    if ( !(nModCode & KEY_MOD1) )
3816
                        nModCode |= KEY_CONTROLMOD;
3817
3808
3818
                    SalKeyEvent aKeyEvt;
3809
                    SalKeyEvent aKeyEvt;
3819
                    aKeyEvt.mnTime      = GetMessageTime();
3810
                    aKeyEvt.mnTime      = GetMessageTime();

Return to issue 11004