]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dfb/toplevel.h
Fix scrolling bug where client size was reported wrong
[wxWidgets.git] / include / wx / dfb / toplevel.h
index 82e797b7abc86c2e47dd8851a7d3f89d96f4aa72..f15d9e4fd7d7a96ec056c3e9487bbf67ffbae8b2 100644 (file)
@@ -11,7 +11,7 @@
 #ifndef _WX_DFB_TOPLEVEL_H_
 #define _WX_DFB_TOPLEVEL_H_
 
-#include "wx/dfb/ifacehelpers.h"
+#include "wx/dfb/dfbptr.h"
 
 wxDFB_DECLARE_INTERFACE(IDirectFBWindow);
 
@@ -75,20 +75,24 @@ public:
 
     void OnInternalIdle();
 
-    IDirectFBWindowPtr GetDirectFBWindow() const { return m_dfbwin; }
+    wxIDirectFBWindowPtr GetDirectFBWindow() const { return m_dfbwin; }
+
+    // Returns true if some invalidated area of the TLW is currently being
+    // painted
+    bool IsPainting() const { return m_isPainting; }
 
 protected:
     // common part of all ctors
     void Init();
 
-    virtual IDirectFBSurfacePtr ObtainDfbSurface() const;
+    virtual wxIDirectFBSurfacePtr ObtainDfbSurface() const;
 
     // overriden wxWindow methods
     virtual void DoGetPosition(int *x, int *y) const;
     virtual void DoGetSize(int *width, int *height) const;
     virtual void DoMoveWindow(int x, int y, int width, int height);
 
-    virtual void DoRefreshRect(const wxRect& rect, bool eraseBack = true);
+    virtual void DoRefreshRect(const wxRect& rect);
 
 private:
     // do queued painting in idle time
@@ -116,10 +120,13 @@ protected:
     wxByte        m_opacity;
 
     // interface to the underlying DirectFB window
-    IDirectFBWindowPtr m_dfbwin;
+    wxIDirectFBWindowPtr m_dfbwin;
 
 private:
+    // invalidated areas of the TLW that need repainting
     wxDfbQueuedPaintRequests *m_toPaint;
+    // are we currently painting some area of this TLW?
+    bool m_isPainting;
 
     friend class wxEventLoop; // for HandleDFBWindowEvent
 };