diff gtk3/dw.c @ 1823:9c77567c5b2d

Fixed broken support in dw_window_set_bitmap() on GTK2/3... GTK3 tested... GTK2 untested.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Fri, 26 Oct 2012 05:25:54 +0000
parents 7f549994b633
children 6b90c7e9e520
line wrap: on
line diff
--- a/gtk3/dw.c	Fri Oct 26 04:54:48 2012 +0000
+++ b/gtk3/dw.c	Fri Oct 26 05:25:54 2012 +0000
@@ -3918,9 +3918,7 @@
 {
    GtkWidget *bitmap;
    GtkWidget *box;
-   GtkWidget *label;
    GtkWidget *button;
-   char *label_text=NULL;
    int _locked_by_me = FALSE;
 
    DW_MUTEX_LOCK;
@@ -3941,14 +3939,6 @@
       gtk_widget_show( bitmap );
       g_object_set_data(G_OBJECT(button), "_dw_bitmap", bitmap);
    }
-   if(label_text)
-   {
-      /* Create a label for the button */
-      label = gtk_label_new( label_text );
-      /* Pack the label into the box */
-      gtk_box_pack_start( GTK_BOX(box), label, TRUE, FALSE, 3 );
-      gtk_widget_show( label );
-   }
 
    /* Pack and show all our widgets */
    gtk_widget_show( box );
@@ -4289,8 +4279,11 @@
    {
       if ( GTK_IS_BUTTON(handle) )
       {
-         GtkWidget *image = gtk_button_get_image( GTK_BUTTON(handle) );
-         gtk_image_set_from_pixbuf(GTK_IMAGE(image), tmp);
+         GtkWidget *pixmap = (GtkWidget *)g_object_get_data( G_OBJECT(handle), "_dw_bitmap" );
+         if(pixmap)
+         {
+            gtk_image_set_from_pixbuf(GTK_IMAGE(pixmap), tmp);
+         }
       }
       else
       {
@@ -4349,7 +4342,18 @@
 
    if(tmp)
    {
-      gtk_image_set_from_pixbuf(GTK_IMAGE(handle), tmp);
+      if ( GTK_IS_BUTTON(handle) )
+      {
+         GtkWidget *pixmap = (GtkWidget *)g_object_get_data( G_OBJECT(handle), "_dw_bitmap" );
+         if(pixmap)
+         {
+            gtk_image_set_from_pixbuf(GTK_IMAGE(pixmap), tmp);
+         }
+      }
+      else
+      {
+         gtk_image_set_from_pixbuf(GTK_IMAGE(handle), tmp);
+      }
    }
    DW_MUTEX_UNLOCK;
 }