2225 |
2225 |
2226 if ( iFlags & KAknButtonReportOnKeyDown ) |
2226 if ( iFlags & KAknButtonReportOnKeyDown ) |
2227 { |
2227 { |
2228 // State is changed on button down event |
2228 // State is changed on button down event |
2229 ChangeState( EFalse ); |
2229 ChangeState( EFalse ); |
2230 redrawNeeded = EFalse; |
2230 redrawNeeded = ETrue; |
2231 DrawNow(); //Redraw before noticing the observer for observer might open dialog |
|
2232 if ( Observer() ) |
2231 if ( Observer() ) |
2233 { |
2232 { |
2234 Observer()->HandleControlEventL( this, |
2233 Observer()->HandleControlEventL( this, |
2235 MCoeControlObserver::EEventStateChanged ); |
2234 MCoeControlObserver::EEventStateChanged ); |
2236 } |
2235 } |
2357 if ( !( iFlags & KAknButtonReportOnKeyDown ) && |
2355 if ( !( iFlags & KAknButtonReportOnKeyDown ) && |
2358 !( iExtension->iFlags.IsSet( CAknButtonExtension::ELongPressReported ) ) && |
2356 !( iExtension->iFlags.IsSet( CAknButtonExtension::ELongPressReported ) ) && |
2359 !( iExtension->iFlags.IsSet( CAknButtonExtension::EKeyRepeatEventReported ) ) ) |
2357 !( iExtension->iFlags.IsSet( CAknButtonExtension::EKeyRepeatEventReported ) ) ) |
2360 { |
2358 { |
2361 ChangeState( EFalse ); |
2359 ChangeState( EFalse ); |
2362 if ( !hasDrawn ) |
2360 redrawNeeded = ETrue; |
2363 { |
|
2364 DrawNow(); |
|
2365 hasDrawn = ETrue; |
|
2366 } |
|
2367 |
|
2368 if ( Observer() ) |
2361 if ( Observer() ) |
2369 { |
2362 { |
2370 Observer()->HandleControlEventL( this, |
2363 Observer()->HandleControlEventL( this, |
2371 MCoeControlObserver::EEventStateChanged ); |
2364 MCoeControlObserver::EEventStateChanged ); |
2372 } |
2365 } |
2373 } |
2366 } |
2374 else |
2367 else |
2375 { |
2368 { |
2376 if ( iExtension->iFlags.IsSet( CAknButtonExtension::ELongPressReported ) && Observer() ) |
2369 if ( iExtension->iFlags.IsSet( CAknButtonExtension::ELongPressReported ) && Observer() ) |
2377 { |
2370 { |
2378 if ( redrawNeeded && !hasDrawn ) |
|
2379 { |
|
2380 DrawNow(); |
|
2381 hasDrawn = ETrue; |
|
2382 } |
|
2383 Observer()->HandleControlEventL( this, |
2371 Observer()->HandleControlEventL( this, |
2384 static_cast<MCoeControlObserver::TCoeEvent>( |
2372 static_cast<MCoeControlObserver::TCoeEvent>( |
2385 CAknButton::ELongPressEndedEvent ) ); |
2373 CAknButton::ELongPressEndedEvent ) ); |
2386 } |
2374 } |
2387 iExtension->iFlags.Clear( CAknButtonExtension::ELongPressReported ); |
2375 iExtension->iFlags.Clear( CAknButtonExtension::ELongPressReported ); |
2388 iExtension->iFlags.Clear( CAknButtonExtension::EKeyRepeatEventReported ); |
2376 iExtension->iFlags.Clear( CAknButtonExtension::EKeyRepeatEventReported ); |
2389 } |
2377 } |
2390 |
2378 |
2391 if ( RequestExit() && Observer() ) |
2379 if ( RequestExit() && Observer() ) |
2392 { |
2380 { |
2393 if ( redrawNeeded && !hasDrawn ) |
|
2394 { |
|
2395 DrawNow(); |
|
2396 hasDrawn = ETrue; |
|
2397 } |
|
2398 Observer()->HandleControlEventL( this, |
2381 Observer()->HandleControlEventL( this, |
2399 MCoeControlObserver::EEventRequestExit ); |
2382 MCoeControlObserver::EEventRequestExit ); |
2400 } |
2383 } |
2401 } |
2384 } |
2402 |
2385 |
2403 if ( !buttonEvent && !IsDimmed() && Observer() ) |
2386 if ( !buttonEvent && !IsDimmed() && Observer() ) |
2404 { |
2387 { |
2405 if ( redrawNeeded && !hasDrawn ) |
|
2406 { |
|
2407 DrawNow(); |
|
2408 hasDrawn = ETrue; |
|
2409 } |
|
2410 Observer()->HandleControlEventL( this, |
2388 Observer()->HandleControlEventL( this, |
2411 MCoeControlObserver::EEventRequestCancel ); |
2389 MCoeControlObserver::EEventRequestCancel ); |
2412 |
2390 |
2413 if ( iExtension->iFlags.IsSet( CAknButtonExtension::ELongPressReported ) ) |
2391 if ( iExtension->iFlags.IsSet( CAknButtonExtension::ELongPressReported ) ) |
2414 { |
2392 { |