]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/cursor.cpp
Fix mem leak.
[wxWidgets.git] / src / gtk / cursor.cpp
index f277f4b0c9750e88cc65fd94dd00eeb5fcc01290..25e4e109ac894168671608b9fa0355fc3efcf46f 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        cursor.cpp
+// Name:        src/gtk/cursor.cpp
 // Purpose:
 // Author:      Robert Roebling
 // Id:          $Id$
 #include "wx/wxprec.h"
 
 #include "wx/cursor.h"
+
+#ifndef WX_PRECOMP
+    #include "wx/app.h"
+#endif // WX_PRECOMP
+
 #include "wx/utils.h"
-#include "wx/app.h"
+
+#include "wx/gtk/private.h" //for idle stuff
 
 #include <gdk/gdk.h>
 #include <gtk/gtk.h>
 
-//-----------------------------------------------------------------------------
-// idle system
-//-----------------------------------------------------------------------------
-
-extern void wxapp_install_idle_handler();
-extern bool g_isIdle;
-
 //-----------------------------------------------------------------------------
 // wxCursor
 //-----------------------------------------------------------------------------
@@ -45,7 +44,7 @@ wxCursorRefData::wxCursorRefData()
 
 wxCursorRefData::~wxCursorRefData()
 {
-    if (m_cursor) gdk_cursor_destroy( m_cursor );
+    if (m_cursor) gdk_cursor_unref( m_cursor );
 }
 
 //-----------------------------------------------------------------------------
@@ -128,7 +127,7 @@ extern GtkWidget *wxGetRootWindow();
 
 wxCursor::wxCursor(const char bits[], int width, int  height,
                    int hotSpotX, int hotSpotY,
-                   const char maskBits[], wxColour *fg, wxColour *bg)
+                   const char maskBits[], const wxColour *fg, const wxColour *bg)
 {
     if (!maskBits)
         maskBits = bits;
@@ -149,15 +148,8 @@ wxCursor::wxCursor(const char bits[], int width, int  height,
                  data, mask, fg->GetColor(), bg->GetColor(),
                  hotSpotX, hotSpotY );
 
-    gdk_bitmap_unref( data );
-    gdk_bitmap_unref( mask );
-}
-
-
-wxCursor::wxCursor( const wxCursor &cursor )
-    : wxObject()
-{
-    Ref( cursor );
+    g_object_unref (G_OBJECT (data));
+    g_object_unref (G_OBJECT (mask));
 }
 
 #if wxUSE_IMAGE
@@ -308,8 +300,8 @@ wxCursor::wxCursor( const wxImage & image )
                                 hotSpotX, hotSpotY
                              );
 
-    gdk_bitmap_unref( data );
-    gdk_bitmap_unref( mask );
+    g_object_unref (G_OBJECT (data));
+    g_object_unref (G_OBJECT (mask));
     delete [] bits;
     delete [] maskBits;
 }
@@ -320,16 +312,6 @@ wxCursor::~wxCursor()
 {
 }
 
-wxCursor& wxCursor::operator = ( const wxCursor& cursor )
-{
-    if (*this == cursor)
-        return (*this);
-
-    Ref( cursor );
-
-    return *this;
-}
-
 bool wxCursor::operator == ( const wxCursor& cursor ) const
 {
     return m_refData == cursor.m_refData;
@@ -381,7 +363,7 @@ void wxEndBusyCursor()
         wxTheApp->ProcessIdle();
 }
 
-void wxBeginBusyCursor( wxCursor *WXUNUSED(cursor) )
+void wxBeginBusyCursor( const wxCursor *WXUNUSED(cursor) )
 {
     if (gs_busyCount++ > 0)
         return;