--- a/windowing/windowserver/nga/SERVER/openwfc/GROUPWIN.CPP Tue Jun 22 15:21:29 2010 +0300
+++ b/windowing/windowserver/nga/SERVER/openwfc/GROUPWIN.CPP Fri Jul 16 11:45:55 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);
}
}