javauis/lcdui_akn/lcdui/inc/CMIDCanvas.h
branchRCL_3
changeset 17 0fd27995241b
parent 14 04becd199f91
child 19 71c436fe3ce0
--- a/javauis/lcdui_akn/lcdui/inc/CMIDCanvas.h	Fri Apr 30 10:40:48 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/inc/CMIDCanvas.h	Tue May 11 16:07:20 2010 +0300
@@ -382,6 +382,7 @@
     MMIDTactileFeedbackComponent* TactileFeedbackComponent();
 #endif // RD_TACTILE_FEEDBACK
 
+    TBool ReadyToBlit() const;
 
 // from base class MMIDBufferProcessor
 
@@ -1039,9 +1040,27 @@
      *          returns EFalse.
      */
     TBool IsNetworkIndicatorEnabledL() const;
+    
+public:
+    /**
+     * Handles switching from foreground to
+     * background and vice versa. Mainly rendering
+     * context and surfaces need to be relased.
+     */
+    void HandleForeground(TBool aForeground);
+    
+private:
+    /** States of the first paint */
+    enum TFirstPainState {
+        EFirstPaintNeverOccurred = 0,
+        EFirstPaintInitiated,
+        EFirstPaintPrepared,
+        EFirstPaintOccurred
+    };
 
 #ifdef RD_JAVA_NGA_ENABLED
 
+private:
     /** EGL surface types */
     typedef enum
     {
@@ -1049,8 +1068,7 @@
         EEglWindow,
         EEglPbuffer
     }  TEglType;
-
-
+    
 // from MAlfBufferProvider
 public:
     /**
@@ -1080,14 +1098,6 @@
     void ContextAboutToSuspend();
     void OnActivation();
 
-public:
-    /**
-     * Handles switching from foreground to
-     * background and vice versa. Mainly rendering
-     * context and surfaces need to be relased.
-     */
-    void HandleForeground(TBool aForeground);
-
 // From MMIDComponentNgaExtension
 public:
     /**
@@ -1550,9 +1560,7 @@
 
     // Stores the control on which was press event generated
     MMIDCustomComponent* iPressedComponent;
-
-#ifdef RD_JAVA_NGA_ENABLED
-
+    
     /**
      * Flag incdicating the foreground status of canvas.
      * Set to EFalse when some other displayable is made current
@@ -1560,6 +1568,8 @@
      */
     TBool iForeground;
 
+#ifdef RD_JAVA_NGA_ENABLED
+
     /**
      * CAlfCompositionPixelSource is used for drawing canvas
      * content when only basic content is drawn
@@ -1680,6 +1690,12 @@
      * All events, which started outside the canvas have to be ignored.
      */
     TBool iDragEventsStartedInside;
+    
+    /**
+     * Switched after any graphics have been sent to screen.
+     * Those graphics should be really drawn on the screen.
+     */
+    TInt iFirstPaintState;
 };
 
 #ifdef RD_JAVA_NGA_ENABLED