+#ifdef __WXGTK3__
+ cairo_t* cr = gdk_cairo_create(gtk_widget_get_window(m_iconWindow));
+ icon->SetSourceSurface(cr, 0, 0);
+ cairo_pattern_t* pattern = cairo_get_source(cr);
+ gdk_window_set_background_pattern(gtk_widget_get_window(m_iconWindow), pattern);
+ cairo_destroy(cr);
+ cairo_surface_t* mask = NULL;
+ if (icon->GetMask())
+ mask = *icon->GetMask();
+ if (mask)
+ {
+ cairo_region_t* region = gdk_cairo_region_create_from_surface(mask);
+ gtk_widget_shape_combine_region(m_iconWindow, region);
+ cairo_region_destroy(region);
+ }
+#else
+ gdk_window_set_back_pixmap(gtk_widget_get_window(m_iconWindow), pixmap, false);