diff -r d72fc2aace31 -r 62bb7c97884c windowing/windowserver/nga/SERVER/openwfc/WINBASE.CPP --- a/windowing/windowserver/nga/SERVER/openwfc/WINBASE.CPP Tue Jul 20 13:27:44 2010 +0300 +++ b/windowing/windowserver/nga/SERVER/openwfc/WINBASE.CPP Fri Jul 30 11:41:40 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); }