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
This commit is contained in:

committed by
Kristian Rietveld

parent
02eda450ea
commit
ce1d7e3a4a
@ -1,3 +1,10 @@
|
|||||||
|
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>
|
2007-08-07 Kristian Rietveld <kris@imendio.com>
|
||||||
|
|
||||||
* gtk/gtktooltip.c (_gtk_tooltip_handle_event): Disable tooltips
|
* gtk/gtktooltip.c (_gtk_tooltip_handle_event): Disable tooltips
|
||||||
|
@ -103,6 +103,8 @@ gtk_tooltips_init (GtkTooltips *tooltips)
|
|||||||
private->tips_data_table =
|
private->tips_data_table =
|
||||||
g_hash_table_new_full (NULL, NULL, NULL,
|
g_hash_table_new_full (NULL, NULL, NULL,
|
||||||
(GDestroyNotify) gtk_tooltips_destroy_data);
|
(GDestroyNotify) gtk_tooltips_destroy_data);
|
||||||
|
|
||||||
|
gtk_tooltips_force_window (tooltips);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -144,6 +146,12 @@ gtk_tooltips_destroy (GtkObject *object)
|
|||||||
|
|
||||||
g_return_if_fail (tooltips != NULL);
|
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);
|
g_hash_table_remove_all (private->tips_data_table);
|
||||||
|
|
||||||
GTK_OBJECT_CLASS (gtk_tooltips_parent_class)->destroy (object);
|
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));
|
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
|
void
|
||||||
|
Reference in New Issue
Block a user