windowing/windowserver/nga/SERVER/openwfc/GROUPWIN.CPP
changeset 188 1b081cb0800b
parent 0 5d03bc08d59c
child 164 25ffed67c7ef
--- a/windowing/windowserver/nga/SERVER/openwfc/GROUPWIN.CPP	Fri Sep 24 16:14:28 2010 +0300
+++ b/windowing/windowserver/nga/SERVER/openwfc/GROUPWIN.CPP	Fri Sep 24 16:44:34 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);
 			}
 		}