X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fat-spi2-atk.git;a=blobdiff_plain;f=atk-adaptor%2Fevent.c;h=dc4e3ec68085525e3c4bc287922d31eade8c19cd;hp=d19f4512da17ffb137b2cc58bdb1c5a360c7b712;hb=683739dea15d7c02c217a404d8c5d9d7af076a57;hpb=c59328606d579ebfbfaea5d9c73a0568d2e74cd8 diff --git a/atk-adaptor/event.c b/atk-adaptor/event.c index d19f451..dc4e3ec 100644 --- a/atk-adaptor/event.c +++ b/atk-adaptor/event.c @@ -64,9 +64,8 @@ switch_main_context (GMainContext *cnx) { GList *list; -#ifndef DISABLE_P2P - atspi_dbus_server_setup_with_g_main (spi_global_app_data->server, cnx); -#endif + if (spi_global_app_data->server) + atspi_dbus_server_setup_with_g_main (spi_global_app_data->server, cnx); atspi_dbus_connection_setup_with_g_main (spi_global_app_data->bus, cnx); for (list = spi_global_app_data->direct_connections; list; list = list->next) atspi_dbus_connection_setup_with_g_main (list->data, cnx); @@ -99,15 +98,12 @@ send_and_allow_reentry (DBusConnection * bus, DBusMessage * message) { DBusPendingCall *pending; SpiReentrantCallClosure closure; - GMainContext *main_context; GSource *source; - main_context = (g_getenv ("AT_SPI_CLIENT") ? NULL : - spi_global_app_data->main_context); closure.bus = bus; - closure.loop = g_main_loop_new (main_context, FALSE); + closure.loop = g_main_loop_new (spi_global_app_data->main_context, FALSE); closure.reply = NULL; - switch_main_context (main_context); + switch_main_context (spi_global_app_data->main_context); if (!dbus_connection_send_with_reply (bus, message, &pending, 9000) || !pending) { @@ -117,7 +113,7 @@ send_and_allow_reentry (DBusConnection * bus, DBusMessage * message) dbus_pending_call_set_notify (pending, set_reply, (void *) &closure, NULL); source = g_timeout_source_new (500); g_source_set_callback (source, timeout_reply, &closure, NULL); - closure.timeout = g_source_attach (source, main_context); + closure.timeout = g_source_attach (source, spi_global_app_data->main_context); g_source_unref (source); g_main_loop_run (closure.loop); if (closure.timeout != -1) @@ -141,7 +137,6 @@ Accessibility_DeviceEventController_NotifyListenersSync (const * key_event) { DBusMessage *message; - DBusError error; dbus_bool_t consumed = FALSE; message = @@ -150,7 +145,6 @@ Accessibility_DeviceEventController_NotifyListenersSync (const ATSPI_DBUS_INTERFACE_DEC, "NotifyListenersSync"); - dbus_error_init (&error); if (spi_dbus_marshal_deviceEvent (message, key_event)) { DBusMessage *reply = @@ -159,8 +153,12 @@ Accessibility_DeviceEventController_NotifyListenersSync (const { DBusError error; dbus_error_init (&error); - dbus_message_get_args (reply, &error, DBUS_TYPE_BOOLEAN, &consumed, - DBUS_TYPE_INVALID); + if (!dbus_message_get_args (reply, &error, DBUS_TYPE_BOOLEAN, + &consumed, DBUS_TYPE_INVALID)) + { + /* TODO: print a warning */ + dbus_error_free (&error); + } dbus_message_unref (reply); } } @@ -372,7 +370,11 @@ signal_is_needed (const gchar *klass, const gchar *major, const gchar *minor) * TODO: FOr 2.2, have at-spi2-core define a special "cache listener" for * this instead, so that we don't send these if no one is listening */ if (!g_strcmp0 (data [1], "ChildrenChanged") || - !g_strcmp0 (data [1], "PropertyChange") || + ((!g_strcmp0 (data [1], "PropertyChange")) && + (!g_strcmp0 (data [2], "accessible-name") || + !g_strcmp0 (data [2], "accessible-description") || + !g_strcmp0 (data [2], "accessible-parent") || + !g_strcmp0 (data [2], "accessible-role"))) || !g_strcmp0 (data [1], "StateChanged")) { g_free (data [2]); @@ -1017,6 +1019,7 @@ children_changed_event_listener (GSignalInvocationHint * signal_hint, detail1); emit_event (accessible, ITF_EVENT_OBJECT, name, minor, detail1, detail2, "(so)", ao, append_object); + g_object_unref (ao); } else {