Mercurial > dwindows
changeset 1401:7266e030a3e3
Attempt at fixing tooltips for GTK2.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Sun, 27 Nov 2011 20:37:33 +0000 |
parents | ccd383e11ff8 |
children | 8ff5b05318fb |
files | gtk/dw.c |
diffstat | 1 files changed, 12 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- 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;