X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=atk-adaptor%2Fevent.c;h=3d1250ef57163f186be4452ba00c5f77c8debd8f;hb=4ac4e0d4876bd1535748e8dc8ccf35db1e173673;hp=a201b37cb50c90dc2c8585cde561681c09c51af7;hpb=de06e41b69ee9c42638177ac1ca1e5dcfd910b8d;p=platform%2Fcore%2Fuifw%2Fat-spi2-atk.git diff --git a/atk-adaptor/event.c b/atk-adaptor/event.c index a201b37..3d1250e 100644 --- a/atk-adaptor/event.c +++ b/atk-adaptor/event.c @@ -187,14 +187,23 @@ emit(AtkObject *accessible, { gchar *path; - path = atk_dbus_object_to_path (accessible); + /* TODO this is a hack, used becuase child-added events are not guaranteed. + * On recieving an event from a non-registered object we check if it can be safely + * registered before sending the event. + */ + path = atk_dbus_object_attempt_registration (accessible); /* Tough decision here * We won't send events from accessible * objects that have not yet been added to the accessible tree. */ if (path == NULL) + { +#ifdef SPI_ATK_DEBUG + g_debug ("AT-SPI: Event recieved from non-registered object"); +#endif return; + } spi_dbus_emit_signal (atk_adaptor_app_data->bus, path, klass, major, minor, detail1, detail2, type, val); g_free(path); @@ -298,11 +307,17 @@ property_event_listener (GSignalInvocationHint *signal_hint, AtkObject *otemp; const gchar *stemp; gint i; - + accessible = g_value_get_object (¶m_values[0]); values = (AtkPropertyValues*) g_value_get_pointer (¶m_values[1]); pname = values[0].property_name; + if (strcmp (pname, "accessible-name") == 0 || + strcmp (pname, "accessible-description") == 0 || + strcmp (pname, "accessible-parent") == 0) + { + return TRUE; + } /* TODO Could improve this control statement by matching * on only the end of the signal names,