]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk1/artgtk.cpp
fixed problems with sometimes processing the events twice introduced in rev 1.170...
[wxWidgets.git] / src / gtk1 / artgtk.cpp
index 209c58e6748d19ce4ae4acac89c1b960b3a335af..0956482251d2062fd2fd9b402e52006e82f6299b 100644 (file)
@@ -24,6 +24,7 @@
 
 #include "wx/artprov.h"
 #include "wx/module.h"
+#include "wx/gtk/private.h"
 
 #include <gtk/gtk.h>
 
@@ -110,6 +111,7 @@ static const char *wxArtIDToStock(const wxArtID& id)
     ART(wxART_CUT,                                 GTK_STOCK_CUT)
     ART(wxART_PASTE,                               GTK_STOCK_PASTE)
     ART(wxART_DELETE,                              GTK_STOCK_DELETE)
+    ART(wxART_NEW,                                 GTK_STOCK_NEW)
 
     ART(wxART_UNDO,                                GTK_STOCK_UNDO)
     ART(wxART_REDO,                                GTK_STOCK_REDO)
@@ -125,7 +127,7 @@ static const char *wxArtIDToStock(const wxArtID& id)
     #undef ART
 }
 
-static GtkIconSize wxArtClientToIconSize(const wxArtClient& client)
+GtkIconSize wxArtClientToIconSize(const wxArtClient& client)
 {
     if (client == wxART_TOOLBAR)
         return GTK_ICON_SIZE_LARGE_TOOLBAR;
@@ -136,7 +138,7 @@ static GtkIconSize wxArtClientToIconSize(const wxArtClient& client)
     else if (client == wxART_BUTTON)
         return GTK_ICON_SIZE_BUTTON;
     else
-        return GTK_ICON_SIZE_BUTTON; // this is arbitrary
+        return GTK_ICON_SIZE_INVALID; // this is arbitrary
 }
 
 static GtkIconSize FindClosestIconSize(const wxSize& size)
@@ -245,6 +247,10 @@ wxBitmap wxGTK2ArtProvider::CreateBitmap(const wxArtID& id,
                                 wxArtClientToIconSize(client) : 
                                 FindClosestIconSize(size);
 
+    // we must have some size, this is arbitrary
+    if (stocksize == GTK_ICON_SIZE_INVALID)
+        stocksize = GTK_ICON_SIZE_BUTTON;
+
     // allow passing GTK+ stock IDs to wxArtProvider:
     if (!stockid)
         stockid = id.ToAscii();