Подробности

[В начало]

Проблема в реализации № S0572

Краткое описание

Неверная регистрация свойства "start-index" в AtkHyperlink

Подробное описание

Из-за неправильной регистрации свойства "start-index" в AtkHyperlink (использован идентификатор PROP_END_INDEX вместо PROP_START_INDEX), результат получения значения этого свойства всегда совпадает со значением свойства "end-index".

Раздел стандарта

ATK 1.9.0 Reference Manual, AtkHyperlink

Пример

//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;
}

Способы устранения

Для устанения проблемы необходимо в функции atk_hyperlink_class_init() поправить регистрацию свойства "start-index":

--- 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));

Компонент

gtk-atk 1.9.0 or later

Принято

Gnome Bugzilla 477763

Статус

Исправлено в ATK 1.21.5 for GNOME 2.21.5.

[В начало]