Details

[Home]

Issue of the Implementation # S0572

Brief

Incorrect registration of the "start-index" property for AtkHyperlink

Detailed Description

The "start-index" property of AtkHyperlink is not registered correctly: PROP_END_INDEX identifier is used instead of PROP_START_INDEX. So if one tries to get the value of the property, the value of the "end-index" property will be returned instead.

Problem location(s) in the standard

ATK 1.9.0 Reference Manual, AtkHyperlink

Example

//Object MyAtkHyperlink, which derives from AtkHyperlink
//and implements its interfaces
guint my_atk_hyperlink_get_start_index(AtkHyperlink* link_)
{
    return 10;
}
guint my_atk_hyperlink_get_end_index(AtkHyperlink* link_)
{
    return 20;
}
//...
int main()
{
    AtkHyperlink* link = g_object_new(MY_TYPE_ATK_HYPERLINK, NULL);
    gint start_index = 0;
    g_object_get(link, "start-index", &start_index, NULL);
    //now start_index is 20, but should be 10
    return 0;
}

Possible solutions

It is required to fix installation of the "start-index" property in the atk_hyperlink_class_init() function:

--- atk-1.18.0/atk/atkhyperlink.c
+++ atk-1.18.0-fixed/atk/atkhyperlink.c
@@ -126,7 +126,7 @@

  g_object_class_install_property (gobject_class,
-                                   PROP_END_INDEX,
+                                   PROP_START_INDEX,
                                   g_param_spec_int ("start-index",
                                                     _("Start index"),
                                                     _("The start index of the AtkHyperlink object"),
                                                     0,
                                                     G_MAXINT,
                                                     0,
                                                     G_PARAM_READABLE));

Component

gtk-atk 1.9.0 or later

Accepted

Gnome Bugzilla 477763

Status

Fixed in ATK 1.21.5 for GNOME 2.21.5.

[Home]