diff -r 29ddb8a72f0e -r 9f1c3fea0f87 windowing/windowserver/nga/SERVER/openwfc/GROUPWIN.CPP --- a/windowing/windowserver/nga/SERVER/openwfc/GROUPWIN.CPP Tue Jul 06 15:45:57 2010 +0300 +++ b/windowing/windowserver/nga/SERVER/openwfc/GROUPWIN.CPP Wed Aug 18 11:05:09 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 1995-2010 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available // under the terms of "Eclipse Public License v1.0" @@ -515,9 +515,8 @@ CWsObject *destroyObj = iWsOwner->HandleToObj(*pData.UInt, WS_HANDLE_CAPTURE_KEY); if (destroyObj) { - //Cancel any repeat that is underway for this key - const TWsWinCmdCaptureKey& capKey(*pData.CaptureKey); - CKeyboardRepeat::CancelRepeat(this,capKey.key,EFalse,capKey.modifierMask); + // Cancel any repeat that is underway for this capture + CKeyboardRepeat::CancelRepeat(destroyObj, EFalse); delete destroyObj; } else @@ -535,9 +534,6 @@ CWsObject *destroyObj = iWsOwner->HandleToObj(*pData.UInt, WS_HANDLE_CAPTURE_KEY_UPDOWNS); if (destroyObj) { - //Cancel any repeat that is underway for this key - const TWsWinCmdCaptureKey& capKey(*pData.CaptureKey); - CKeyboardRepeat::CancelRepeat(this,capKey.key,EFalse,capKey.modifierMask); delete destroyObj; } else @@ -555,9 +551,8 @@ CWsObject *destroyObj = iWsOwner->HandleToObj(*pData.UInt, WS_HANDLE_CAPTURE_LONG_KEY); if (destroyObj) { - //Cancel any repeat that is underway for this key - const TWsWinCmdCaptureLongKey& capKey(*pData.CaptureLongKey); - CKeyboardRepeat::CancelRepeat(this,capKey.inputKey,ETrue,capKey.modifierMask); + // Cancel any repeat that is underway for this capture + CKeyboardRepeat::CancelRepeat(destroyObj, ETrue); delete destroyObj; } else @@ -906,6 +901,12 @@ TBool CWsWindowGroup::SetOrdinalPosition(TInt aPos,CWsWindowGroup* aClosingWindow) { TBool ret=ETrue; + + // Remember if the window group tree is actually changed or not, so that we know whether to + // check the render orientation after the re-ordering is done ( see CWsTop::CheckRenderOrientation() + // call at end of this method + TBool changed = CheckOrdinalPositionChange(aPos); + if (!iQueue) ret=DoSetOrdinalPosition1(aPos,aClosingWindow); else @@ -962,6 +963,11 @@ #endif } + // If the ordinal positions have changed, check to see if there is a new render orientation + // and publish it if so + if(changed) + CWsTop::CheckRenderOrientation(); + return ret; } @@ -1348,13 +1354,13 @@ } } -TBool CWsWindowGroup::CheckForPriorityKey(const TKeyData &aKey, TInt aScanCode) +TBool CWsWindowGroup::CheckForPriorityKey(const TKeyEvent &aKeyEvent) { for(TPriorityKey *pk=iPriorityKeys;pk;pk=pk->iNext) { - if (pk->KeyMatches(aKey)) + if (pk->KeyMatches(aKeyEvent)) { - WsOwner()->PriorityKeyPressed(ClientHandle(),aKey, aScanCode); + WsOwner()->PriorityKeyPressed(ClientHandle(), aKeyEvent); return(ETrue); } }