171 // CAknStylusPopUpMenu::ShowMenu |
171 // CAknStylusPopUpMenu::ShowMenu |
172 // --------------------------------------------------------------------------- |
172 // --------------------------------------------------------------------------- |
173 // |
173 // |
174 EXPORT_C void CAknStylusPopUpMenu::ShowMenu() |
174 EXPORT_C void CAknStylusPopUpMenu::ShowMenu() |
175 { |
175 { |
176 TRAPD( err, |
176 // if contoller exists, re-use it . |
177 iController = CAknPreviewPopUpController::NewL( *iContent, |
177 if ( !iController ) |
178 CAknPreviewPopUpController::ELayoutSubMenu | |
178 { |
179 CAknPreviewPopUpController::EAutoMirror | |
179 TRAPD( err, |
180 CAknPreviewPopUpController::EDontClose ) ); |
180 iController = CAknPreviewPopUpController::NewL( *iContent, |
181 if ( err ) |
181 CAknPreviewPopUpController::ELayoutSubMenu | |
182 { |
182 CAknPreviewPopUpController::EAutoMirror | |
183 return; |
183 CAknPreviewPopUpController::EDontClose ) ); |
184 } |
184 if ( err ) |
|
185 { |
|
186 return; |
|
187 } |
185 |
188 |
186 iController->SetPopUpShowDelay( KDefaultPopUpShowDelay ); |
189 iController->SetPopUpShowDelay( KDefaultPopUpShowDelay ); |
187 iController->SetPopUpHideDelay( KDefaultPopUpHideDelay ); |
190 iController->SetPopUpHideDelay( KDefaultPopUpHideDelay ); |
188 iContent->Parent()->DrawableWindow()->SetNonFading(ETrue); |
191 iContent->Parent()->DrawableWindow()->SetNonFading(ETrue); |
|
192 } |
189 |
193 |
190 TSize size(iController->Size()); |
194 TSize size(iController->Size()); |
191 iController->ShowPopUp(); |
195 iController->ShowPopUp(); |
192 |
196 |
193 if ( size.iWidth == 0 && size.iHeight == 0 ) |
197 if ( size.iWidth == 0 && size.iHeight == 0 ) |
377 iController->HidePopUp(); |
381 iController->HidePopUp(); |
378 } |
382 } |
379 |
383 |
380 if ( iMenuObserver ) |
384 if ( iMenuObserver ) |
381 { |
385 { |
|
386 TBool isAlreadySet = iFlags.IsSet( EIdleDisabled ); |
|
387 |
382 iFlags.Set( EIdleDisabled ); |
388 iFlags.Set( EIdleDisabled ); |
383 TBool isDeleted = EFalse; |
389 TBool isDeleted = EFalse; |
384 iIsDeleted = &isDeleted; |
390 iIsDeleted = &isDeleted; |
385 |
391 |
386 iMenuObserver->ProcessCommandL( iContent->CurrentCommandId() ); |
392 iMenuObserver->ProcessCommandL( iContent->CurrentCommandId() ); |
411 } |
420 } |
412 else if ( aControl && aEventType == EEventRequestCancel ) |
421 else if ( aControl && aEventType == EEventRequestCancel ) |
413 { |
422 { |
414 if ( iMenuObserver ) |
423 if ( iMenuObserver ) |
415 { |
424 { |
|
425 TBool isAlreadySet = iFlags.IsSet( EIdleDisabled ); |
|
426 |
416 iFlags.Set( EIdleDisabled ); |
427 iFlags.Set( EIdleDisabled ); |
417 iMenuObserver->ProcessCommandL( KErrCancel ); |
428 iMenuObserver->ProcessCommandL( KErrCancel ); |
418 iFlags.Clear( EIdleDisabled ); |
429 |
|
430 if( !isAlreadySet ) |
|
431 { |
|
432 iFlags.Clear( EIdleDisabled ); |
|
433 } |
|
434 |
419 } |
435 } |
420 |
436 |
421 StartControllerIdleL(); |
437 StartControllerIdleL(); |
422 } |
438 } |
423 } |
439 } |