1186 TEventCode aType) |
1187 TEventCode aType) |
1187 { |
1188 { |
1188 TRACE_INFO( (_L("[HID]\tCHidKeyboardDriver::WindowGroupForKeyEvent: type %d, kc 0x%08x, sc 0x%08x, mod 0x%06x, rep %d]"), |
1189 TRACE_INFO( (_L("[HID]\tCHidKeyboardDriver::WindowGroupForKeyEvent: type %d, kc 0x%08x, sc 0x%08x, mod 0x%06x, rep %d]"), |
1189 aType, aKeyEvent.iCode, aKeyEvent.iScanCode, |
1190 aType, aKeyEvent.iCode, aKeyEvent.iScanCode, |
1190 aKeyEvent.iModifiers, aKeyEvent.iRepeats)); |
1191 aKeyEvent.iModifiers, aKeyEvent.iRepeats)); |
1191 _LIT(KBackDrop, "*EiksrvBackdrop*"); |
|
1192 |
|
1193 if (EStdKeyApplication0 == aKeyEvent.iScanCode && (EEventKeyDown == aType |
|
1194 || EEventKeyUp == aType)) |
|
1195 { |
|
1196 // Application key up/down events go to the Eikon server |
|
1197 // Use this old way for application key |
|
1198 TInt result = iWsSession.FindWindowGroupIdentifier(0, KBackDrop); //This was in A2.x __EIKON_SERVER_NAME |
|
1199 DBG(if (KErrNotFound == result) RDebug::Print(_L("[HID]\tCHidKeyboardDriver::WindowGroupForKeyEvent(): BackDropWindowGroup Name not found!"))); |
|
1200 return result; |
|
1201 } |
|
1202 |
1192 |
1203 if (EKeyDevice2 == aKeyEvent.iCode && EEventKey == aType) |
1193 if (EKeyDevice2 == aKeyEvent.iCode && EEventKey == aType) |
1204 { |
1194 { |
1205 // Power key press events go to SysAp |
1195 // Power key press events go to SysAp |
1206 TApaTaskList taskList( iWsSession ); |
1196 TApaTaskList taskList( iWsSession ); |
1377 //---------------------------------------------------------------------------- |
1367 //---------------------------------------------------------------------------- |
1378 // |
1368 // |
1379 void CHidKeyboardDriver::LaunchApplicationL(TInt aAppUid) |
1369 void CHidKeyboardDriver::LaunchApplicationL(TInt aAppUid) |
1380 { |
1370 { |
1381 TRACE_INFO( (_L("[HID]\tCHidKeyboardDriver::LaunchApplication: UID 0x%08x"), aAppUid)); |
1371 TRACE_INFO( (_L("[HID]\tCHidKeyboardDriver::LaunchApplication: UID 0x%08x"), aAppUid)); |
1382 |
1372 |
|
1373 //KeyLock or phone auto lock is on, refuse to continue |
|
1374 if (iKeyLock.IsKeyLockEnabled()) |
|
1375 { |
|
1376 TRACE_INFO( _L("[HID]\tCHidKeyboardDriver::LaunchApplicationL() SKIPPED BECAUSE OF KEYLOCK")); |
|
1377 return; |
|
1378 } |
|
1379 |
|
1380 TInt devLockStatus( EAutolockStatusUninitialized ); |
|
1381 TInt err = RProperty::Get( KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, devLockStatus ); |
|
1382 |
|
1383 if (!err) |
|
1384 { |
|
1385 if ( EAutolockOff != devLockStatus && EAutolockStatusUninitialized != devLockStatus) |
|
1386 { |
|
1387 //Auto lock is on, refuse to continue |
|
1388 TRACE_INFO( _L("[HID]\tCHidKeyboardDriver::LaunchApplicationL() SKIPPED BECAUSE OF AUTO LOCK")); |
|
1389 return; |
|
1390 } |
|
1391 } |
|
1392 else |
|
1393 { |
|
1394 //failed to get AUTO LOCK status |
|
1395 TRACE_INFO( _L("[HID]\tCHidKeyboardDriver::LaunchApplicationL() SKIPPED BECAUSE OF FAILED TO GET AUTO LOCK STATUS")); |
|
1396 return; |
|
1397 } |
|
1398 |
1383 TApaTaskList taskList(iWsSession); |
1399 TApaTaskList taskList(iWsSession); |
1384 TUid uid = TUid::Uid(aAppUid); |
1400 TUid uid = TUid::Uid(aAppUid); |
1385 TApaTask task = taskList.FindApp(uid); |
1401 TApaTask task = taskList.FindApp(uid); |
1386 if (task.Exists()) |
1402 if (task.Exists()) |
1387 { |
1403 { |
1914 |
1932 |
1915 // ESC when keylock enabled >>> Disabled key lock |
1933 // ESC when keylock enabled >>> Disabled key lock |
1916 else if (aIsKeyDown && |
1934 else if (aIsKeyDown && |
1917 iKeyLock.IsKeyLockEnabled()) |
1935 iKeyLock.IsKeyLockEnabled()) |
1918 { |
1936 { |
1919 TRACE_INFO((_L("[HID]\tESC >>> DISBALE KEY LOCK DOWN"))); |
1937 TInt devLockStatus( EAutolockStatusUninitialized ); |
1920 |
1938 TInt err = RProperty::Get( KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, devLockStatus ); |
1921 iKeyLock.DisableKeyLock(); |
1939 |
1922 |
1940 if (!err) |
1923 ret = ETrue; |
1941 { |
1924 iNavKeyDown = (iNavKeyDown | EEsc); |
1942 if (EAutolockOff == devLockStatus || EAutolockStatusUninitialized == devLockStatus) |
1925 } |
1943 { |
1926 |
1944 TRACE_INFO((_L("[HID]\tESC >>> AUTO LOCK IS OFF, DISBALE KEY LOCK DOWN "))); |
1927 break; |
1945 iKeyLock.DisableKeyLock(); |
1928 } |
1946 ret = ETrue; |
|
1947 iNavKeyDown = (iNavKeyDown | EEsc); |
|
1948 } |
|
1949 else |
|
1950 { |
|
1951 TRACE_INFO((_L("[HID]\tESC >>> AUTO LOCK IS ON, DISBALE KEY LOCK DOWN SKIPPED"))); |
|
1952 } |
|
1953 } |
|
1954 else |
|
1955 { |
|
1956 TRACE_INFO((_L("[HID]\tESC >>> FAILED to get AUTO LOCK status, DISBALE KEY LOCK DOWN SKIPPED"))); |
|
1957 } |
|
1958 |
|
1959 } |
|
1960 |
|
1961 break; |
|
1962 } |
|
1963 case EStdKeyApplication0: |
|
1964 { |
|
1965 TRACE_INFO((_L("[HID]\tAPPLICATION KEY(Alt+Tab) >>> TSW"))); |
|
1966 |
|
1967 // Dedicated Application key |
|
1968 scancode = EStdKeyApplication0; |
|
1969 isMmKey = ETrue; |
|
1970 break; |
|
1971 } |
1929 case EStdKeyF8: |
1972 case EStdKeyF8: |
1930 // fall through |
1973 // fall through |
1931 case EStdKeyApplication2: |
1974 case EStdKeyApplication2: |
1932 { |
1975 { |
1933 TRACE_INFO((_L("[HID]\tF8 / APPLICATION2 >>> PLAY / PAUSE"))); |
1976 TRACE_INFO((_L("[HID]\tF8 / APPLICATION2 >>> PLAY / PAUSE"))); |