diff -r 29ddb8a72f0e -r 9f1c3fea0f87 windowing/windowserver/nga/SERVER/openwfc/WINBASE.CPP --- a/windowing/windowserver/nga/SERVER/openwfc/WINBASE.CPP Tue Jul 06 15:45:57 2010 +0300 +++ b/windowing/windowserver/nga/SERVER/openwfc/WINBASE.CPP Wed Aug 18 11:05:09 2010 +0300 @@ -511,10 +511,18 @@ } } break; - case EWsWinOpEnableAdvancedPointers: - User::LeaveIfError(IsActivated()?KErrInUse:KErrNone); - iBaseWinFlags |= EBaseWinAdvancedPointersEnabled; - break; + case EWsWinOpEnableAdvancedPointers: + if(!IsActivated()) + { + // Must call this BEFORE activating the window. + iBaseWinFlags |= EBaseWinAdvancedPointersEnabled; + } + else + { + // Called after activation, so panic the client. + OwnerPanic(EWservPanicUnableToEnableAdvPointer); + } + break; default: return(EFalse); }