--- a/uifw/AknGlobalUI/OldStyleNotif/Src/AknListQueryNotificationDialog.cpp Wed Apr 14 16:14:00 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/AknListQueryNotificationDialog.cpp Tue Apr 27 16:55:05 2010 +0300
@@ -24,7 +24,10 @@
TInt* aIndex,
MAknListQueryNotificationCallback* aCallBack,
CAknListQueryNotificationDialog** aSelfPtr)
- : CAknListQueryDialog(aIndex), iCallBack(aCallBack), iSelfPtr(aSelfPtr)
+ : CAknListQueryDialog(aIndex)
+ , iCallBack(aCallBack)
+ , iSelfPtr(aSelfPtr)
+ , iPointerUpEaten(EFalse)
{
}
@@ -55,6 +58,8 @@
return EKeyWasNotConsumed;
}
+ iPointerUpEaten = EFalse;
+
TInt code = aKeyEvent.iCode;
switch (code)
@@ -111,6 +116,14 @@
TBool CAknListQueryNotificationDialog::OkToExitL(TInt aButtonId)
{
+ // Fix the problem where the pointer up event is handled to close the power menu key,
+ // when the popup shows on the top of power menu before releasing the tap.
+ if (iPointerUpEaten && AknLayoutUtils::PenEnabled() && aButtonId == EAknSoftkeyOk)
+ {
+ iPointerUpEaten = EFalse;
+ return EFalse;
+ }
+
TInt ret = -1;
if (aButtonId != EAknSoftkeyCancel)
{
@@ -124,6 +137,17 @@
return EFalse;
}
+void CAknListQueryNotificationDialog::HandlePointerEventL(const TPointerEvent& aPointerEvent)
+ {
+ iPointerUpEaten = EFalse;
+ if (aPointerEvent.iType == TPointerEvent::EButton1Up && !IsFocused())
+ {
+ iPointerUpEaten = ETrue;
+ }
+
+ CAknListQueryDialog::HandlePointerEventL(aPointerEvent);
+ }
+
void CAknListQueryNotificationDialog::CEikDialog_Reserved_1()
{
}