Mercurial > dwindows
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; }