diff options
author | Kristian Rietveld <kris@imendio.com> | 2007-08-07 13:32:19 +0000 |
---|---|---|
committer | Kristian Rietveld <kristian@src.gnome.org> | 2007-08-07 13:32:19 +0000 |
commit | ce1d7e3a4a73c3a17c09c851cfdea9cc599c1b40 (patch) | |
tree | 0591013346954136f002d7ff06ca39d58134729e /gtk/gtktooltips.c | |
parent | 02eda450ea334eeb11f07726f9564332e2386464 (diff) | |
download | gtk+-ce1d7e3a4a73c3a17c09c851cfdea9cc599c1b40.tar.gz |
create a dummy tip_window and tip_label, so old applications with code
2007-08-07 Kristian Rietveld <kris@imendio.com>
* gtk/gtktooltips.c (gtk_tooltips_init),
(gtk_tooltips_destroy), (gtk_tooltips_force_window): create a dummy
tip_window and tip_label, so old applications with code accessing
those fields won't crash.
svn path=/trunk/; revision=18587
Diffstat (limited to 'gtk/gtktooltips.c')
-rw-r--r-- | gtk/gtktooltips.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/gtk/gtktooltips.c b/gtk/gtktooltips.c index 1a560cd9a2..1a53973867 100644 --- a/gtk/gtktooltips.c +++ b/gtk/gtktooltips.c @@ -103,6 +103,8 @@ gtk_tooltips_init (GtkTooltips *tooltips) private->tips_data_table = g_hash_table_new_full (NULL, NULL, NULL, (GDestroyNotify) gtk_tooltips_destroy_data); + + gtk_tooltips_force_window (tooltips); } static void @@ -144,6 +146,12 @@ gtk_tooltips_destroy (GtkObject *object) g_return_if_fail (tooltips != NULL); + if (tooltips->tip_window) + { + gtk_widget_destroy (tooltips->tip_window); + tooltips->tip_window = NULL; + } + g_hash_table_remove_all (private->tips_data_table); GTK_OBJECT_CLASS (gtk_tooltips_parent_class)->destroy (object); @@ -154,7 +162,18 @@ gtk_tooltips_force_window (GtkTooltips *tooltips) { g_return_if_fail (GTK_IS_TOOLTIPS (tooltips)); - /* nop */ + if (!tooltips->tip_window) + { + tooltips->tip_window = gtk_window_new (GTK_WINDOW_POPUP); + g_signal_connect (tooltips->tip_window, + "destroy", + G_CALLBACK (gtk_widget_destroyed), + &tooltips->tip_window); + + tooltips->tip_label = gtk_label_new (NULL); + gtk_container_add (GTK_CONTAINER (tooltips->tip_window), + tooltips->tip_label); + } } void |