X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=cspi%2Fspi-registry.c;h=74716eb3873d96b6f55e724c9187ba7e72721e6b;hb=b6a9e880c09f13a391a2a23b0dd685a518fe61a1;hp=ede820d46a584f6e6c509c8d5a251fbeb4d852a3;hpb=81bb66a3c2ff0bbb4a796e656227c3f2dd8e0755;p=platform%2Fcore%2Fuifw%2Fat-spi2-atk.git diff --git a/cspi/spi-registry.c b/cspi/spi-registry.c index ede820d..74716eb 100644 --- a/cspi/spi-registry.c +++ b/cspi/spi-registry.c @@ -39,9 +39,7 @@ static GArray *desktops; int SPI_getDesktopCount () { - if (!desktops) SPI_getDesktopList (NULL); - if (!desktops) return -1; - return desktops->len; + return 1; } /** @@ -57,9 +55,8 @@ SPI_getDesktopCount () Accessible* SPI_getDesktop (int i) { - if (!desktops) SPI_getDesktopList (NULL); - if (!desktops) return NULL; - return cspi_ref_accessible (spi_bus_registry, g_array_index (desktops, char *, i)); + if (i != 0) return NULL; + return cspi_ref_accessible (spi_bus_registry, NULL); } /** @@ -81,29 +78,16 @@ SPI_getDesktop (int i) int SPI_getDesktopList (Accessible ***desktop_list) { - int i; Accessible **list; - if (desktop_list) *desktop_list = NULL; + list = g_new0 (Accessible *, 2); - if (!desktops) - { - dbind_connection_method_call (SPI_bus(), spi_bus_registry, spi_path_registry, spi_interface_registry, "getDesktopList", NULL, "=>ao", &desktops); - if (!desktops) return 0; - } - - list = g_new0 (Accessible *, desktops->len + 1); - - if (!desktop_list) return desktops->len; - for (i = 0; i < desktops->len; i++) - { - list [i] = cspi_ref_accessible (spi_bus_registry, g_array_index (desktops, char *, i)); - } - list [i] = NULL; + if (!desktop_list) return 1; + list [0] = cspi_ref_accessible (spi_bus_registry, NULL); *desktop_list = list; - return i; + return 1; } /** @@ -167,7 +151,7 @@ SPI_registerAccessibleKeystrokeListener (AccessibleKeystrokeListener *listener, AccessibleKeyEventMask eventmask, AccessibleKeyListenerSyncType sync_type) { - gchar *path = cspi_device_listener_get_path (listener); + gchar *path; gint i; GArray *key_set; dbus_uint32_t key_events = 0; @@ -180,6 +164,7 @@ SPI_registerAccessibleKeystrokeListener (AccessibleKeystrokeListener *listener, { return retval; } + path = cspi_device_listener_get_path (listener); /* copy the keyval filter values from the C api into the DBind KeySet */ if (keys) @@ -226,7 +211,7 @@ SPI_registerAccessibleKeystrokeListener (AccessibleKeystrokeListener *listener, (dbus_bool_t) ((sync_type & SPI_KEYLISTENER_ALL_WINDOWS)!=0); dbus_error_init (&error); - dbind_connection_method_call (SPI_bus(), spi_bus_registry, spi_path_dec, spi_interface_dec, "registerKeystrokeListener", &error, "oa(iisi)uu(bbb)=>b", path, key_set, controller_event_mask, key_set, &listener_mode, &retval); + dbind_method_call_reentrant (SPI_bus(), spi_bus_registry, spi_path_dec, spi_interface_dec, "registerKeystrokeListener", &error, "oa(iisi)uu(bbb)=>b", path, key_set, controller_event_mask, key_events, &listener_mode, &retval); g_array_free (key_set, TRUE); g_free (path); @@ -250,7 +235,7 @@ SPIBoolean SPI_deregisterAccessibleKeystrokeListener (AccessibleKeystrokeListener *listener, AccessibleKeyMaskType modmask) { - gchar *path = cspi_device_listener_get_path (listener); + gchar *path; Accessibility_ControllerEventMask controller_event_mask; GArray *key_set; dbus_uint32_t key_events = 0; @@ -261,11 +246,12 @@ SPI_deregisterAccessibleKeystrokeListener (AccessibleKeystrokeListener *listener return FALSE; } + path = cspi_device_listener_get_path (listener); controller_event_mask = (dbus_uint32_t) modmask; key_set = g_array_sized_new (FALSE, TRUE, sizeof (Accessibility_KeyDefinition), 0); - dbind_connection_method_call (SPI_bus(), spi_bus_registry, spi_path_dec, spi_interface_dec, "deregisterKeystrokeListener", &error, "oa(iisi)uu", path, &key_set, key_events, controller_event_mask); + dbind_method_call_reentrant (SPI_bus(), spi_bus_registry, spi_path_dec, spi_interface_dec, "deregisterKeystrokeListener", &error, "oa(iisi)uu", path, &key_set, key_events, controller_event_mask); g_free (path); return TRUE; } @@ -290,7 +276,7 @@ SPI_registerDeviceEventListener (AccessibleDeviceListener *listener, SPIBoolean retval = FALSE; dbus_uint32_t event_types = 0; gint i; - gchar *path = cspi_device_listener_get_path (listener); + gchar *path; DBusError error; if (!listener) @@ -298,6 +284,8 @@ SPI_registerDeviceEventListener (AccessibleDeviceListener *listener, return retval; } + path = cspi_device_listener_get_path (listener); + /* copy the event filter values from the C api into the CORBA KeyEventTypeSeq */ if (eventmask & SPI_BUTTON_PRESSED) @@ -310,7 +298,7 @@ SPI_registerDeviceEventListener (AccessibleDeviceListener *listener, } dbus_error_init (&error); - dbind_connection_method_call (SPI_bus(), spi_bus_registry, spi_path_dec, spi_interface_dec, "registerDeviceEventListener", &error, "ou=>b", path, event_types, &retval); + dbind_method_call_reentrant (SPI_bus(), spi_bus_registry, spi_path_dec, spi_interface_dec, "registerDeviceEventListener", &error, "ou=>b", path, event_types, &retval); g_free (path); return retval; } @@ -331,7 +319,7 @@ SPI_deregisterDeviceEventListener (AccessibleDeviceListener *listener, void *filter) { dbus_uint32_t event_types = 0; - gchar *path = cspi_device_listener_get_path (listener); + gchar *path; DBusError error; if (!listener) @@ -339,11 +327,13 @@ SPI_deregisterDeviceEventListener (AccessibleDeviceListener *listener, return FALSE; } + path = cspi_device_listener_get_path (listener); + event_types |= (1 << Accessibility_BUTTON_PRESSED_EVENT); event_types |= (1 << Accessibility_BUTTON_RELEASED_EVENT); dbus_error_init (&error); - dbind_connection_method_call (SPI_bus(), spi_bus_registry, spi_path_dec, spi_interface_dec, "deregisterDeviceEventListener", &error, "ou", path, event_types); + dbind_method_call_reentrant (SPI_bus(), spi_bus_registry, spi_path_dec, spi_interface_dec, "deregisterDeviceEventListener", &error, "ou", path, event_types); g_free (path); return TRUE; } @@ -399,7 +389,7 @@ SPI_generateKeyboardEvent (long int keyval, if (!keystring) keystring = ""; dbus_error_init (&error); - dbind_connection_method_call (SPI_bus(), spi_bus_registry, spi_path_dec, spi_interface_dec, "generateKeyboardEvent", &error, "isu", keycode, keystring, keysynth_type); + dbind_method_call_reentrant (SPI_bus(), spi_bus_registry, spi_path_dec, spi_interface_dec, "generateKeyboardEvent", &error, "isu", keycode, keystring, keysynth_type); return TRUE; } @@ -427,12 +417,12 @@ SPI_generateMouseEvent (long x, long y, char *name) DBusError error; dbus_error_init (&error); - dbind_connection_method_call (SPI_bus(), spi_bus_registry, spi_path_dec, spi_interface_dec, "generateMouseEvent", &error, "iis", x, y, name); + dbind_method_call_reentrant (SPI_bus(), spi_bus_registry, spi_path_dec, spi_interface_dec, "generateMouseEvent", &error, "iis", x, y, name); return TRUE; } char * cspi_device_listener_get_path (CSpiDeviceListener *listener) { - return g_strdup_printf ("/org/freedesktop/atspi/listeners/%d", listener->id); + return g_strdup_printf ("/org/a11y/atspi/listeners/%d", listener->id); }