+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.
+
2007-08-07 Kristian Rietveld <kris@imendio.com>
* gtk/gtktooltip.c (_gtk_tooltip_handle_event): Disable 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
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);
{
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