summaryrefslogtreecommitdiff
path: root/gtk/gtktooltips.c
diff options
context:
space:
mode:
authorKristian Rietveld <kris@imendio.com>2007-08-07 13:32:19 +0000
committerKristian Rietveld <kristian@src.gnome.org>2007-08-07 13:32:19 +0000
commitce1d7e3a4a73c3a17c09c851cfdea9cc599c1b40 (patch)
tree0591013346954136f002d7ff06ca39d58134729e /gtk/gtktooltips.c
parent02eda450ea334eeb11f07726f9564332e2386464 (diff)
downloadgtk+-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.c21
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