keyboard_tracker.c: Added "back button" tts when hardware back button is used 85/52685/2
authorBartlomiej Uliasz <b.uliasz@samsung.com>
Wed, 25 Nov 2015 15:26:04 +0000 (16:26 +0100)
committerLukasz Stanislawski <l.stanislaws@samsung.com>
Fri, 27 Nov 2015 13:13:22 +0000 (05:13 -0800)
Change-Id: I9de80740ec672642d7c35b81aada160af14ee549
Signed-off-by: Bartlomiej Uliasz <b.uliasz@samsung.com>
res/po/en_US.po
src/keyboard_tracker.c

index 9587016..194c68c 100644 (file)
@@ -1,4 +1,7 @@
 
+msgid "IDS_BACK_BUTTON"
+msgstr "back button"
+
 msgid "IDS_TRAIT_SLIDER_SWIPE_COMMUNICATE"
 msgstr "flick up and down to adjust the position. "
 
index 74befc9..b43cd7c 100644 (file)
@@ -24,6 +24,7 @@
 #include "logger.h"
 #include "screen_reader_tts.h"
 static AtspiDeviceListener *listener;
+static AtspiDeviceListener *async_listener;
 static Keyboard_Tracker_Cb user_cb;
 static void *user_data;
 #ifdef X11_ENABLED
@@ -158,10 +159,23 @@ static gboolean device_cb(const AtspiDeviceEvent * stroke, void *data)
        return TRUE;
 }
 
+static gboolean async_keyboard_cb(const AtspiDeviceEvent * stroke, void *data)
+{
+       if (!strcmp(stroke->event_string, "XF86Back"))
+       {
+               tts_speak(_("IDS_BACK_BUTTON"), EINA_TRUE);
+               return TRUE;
+       }
+       else
+               return FALSE;
+}
+
 void keyboard_tracker_init(void)
 {
        listener = atspi_device_listener_new(device_cb, NULL, NULL);
-       atspi_register_keystroke_listener(listener, NULL, 0, ATSPI_KEY_PRESSED, ATSPI_KEYLISTENER_SYNCHRONOUS | ATSPI_KEYLISTENER_CANCONSUME, NULL);
+       atspi_register_keystroke_listener(listener, NULL, 0, 1 << ATSPI_KEY_PRESSED_EVENT, ATSPI_KEYLISTENER_SYNCHRONOUS | ATSPI_KEYLISTENER_CANCONSUME, NULL);
+       async_listener = atspi_device_listener_new(async_keyboard_cb, NULL, NULL);
+       atspi_register_keystroke_listener(async_listener, NULL, 0, 1 << ATSPI_KEY_RELEASED_EVENT, ATSPI_KEYLISTENER_NOSYNC, NULL);
 #ifdef X11_ENABLED
        active_xwindow_property_tracker_register();
        root_xwindow_property_tracker_register();
@@ -177,7 +191,8 @@ void keyboard_tracker_register(Keyboard_Tracker_Cb cb, void *data)
 
 void keyboard_tracker_shutdown(void)
 {
-       atspi_deregister_keystroke_listener(listener, NULL, 0, ATSPI_KEY_PRESSED, NULL);
+       atspi_deregister_keystroke_listener(listener, NULL, 0, 1 << ATSPI_KEY_PRESSED, NULL);
+       atspi_deregister_keystroke_listener(async_listener, NULL, 0, 1 << ATSPI_KEY_RELEASED_EVENT, NULL);
 #ifdef X11_ENABLED
        root_xwindow_property_tracker_unregister();
        active_xwindow_property_tracker_unregister();