# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1322426253 0 # Node ID 7266e030a3e3ab344b4174c8be7c93df40366f8a # Parent ccd383e11ff84698b88457dd6bf3c5a7571e948c Attempt at fixing tooltips for GTK2. diff -r ccd383e11ff8 -r 7266e030a3e3 gtk/dw.c --- a/gtk/dw.c Sun Nov 27 20:28:15 2011 +0000 +++ b/gtk/dw.c Sun Nov 27 20:37:33 2011 +0000 @@ -4368,17 +4368,20 @@ void _create_tooltip(HWND handle, char *text) { - GtkTooltips *tooltips = NULL; - GtkWidget *oldtooltips = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_tooltip"); - - if(oldtooltips) - gtk_widget_destroy(oldtooltips); - if(text) + GtkTooltips *tooltips = (GtkTooltips *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_tooltip"); + + if(!tooltips) { tooltips = gtk_tooltips_new(); + gtk_object_set_data(GTK_OBJECT(handle), "_dw_tooltip", (gpointer)tooltips); + } + if(text && *text) + { gtk_tooltips_set_tip(tooltips, handle, text, NULL); - } - gtk_object_set_data(GTK_OBJECT(handle), "_dw_tooltip", (gpointer)tooltips); + gtk_tooltips_enable(tooltips); + } + else + gtk_tooltips_disable(tooltips); } /* @@ -4458,7 +4461,7 @@ gtk_widget_show( box ); gtk_container_add( GTK_CONTAINER(button), box ); gtk_widget_show( button ); - _create_tooltip(tmp, text); + _create_tooltip(button, text); gtk_object_set_data( GTK_OBJECT(button), "_dw_id", GINT_TO_POINTER(id) ); DW_MUTEX_UNLOCK; return button;