diff -r 57c618273d5c -r bbf46f59e123 windowing/windowserver/nga/SERVER/openwfc/WINBASE.CPP --- a/windowing/windowserver/nga/SERVER/openwfc/WINBASE.CPP Thu Aug 19 11:11:18 2010 +0300 +++ b/windowing/windowserver/nga/SERVER/openwfc/WINBASE.CPP Tue Aug 31 16:31:06 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); }