uifw/AknGlobalUI/OldStyleNotif/Src/AknListQueryNotificationDialog.cpp
branchRCL_3
changeset 18 0aa5fbdfbc30
parent 0 2f259fa3e83a
child 51 fcdfafb36fe7
--- 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()
     {
     }