properly init libatspi
authorLukasz Stanislawski <l.stanislaws@samsung.com>
Mon, 28 Sep 2015 10:11:01 +0000 (12:11 +0200)
committerTomasz Olszak <t.olszak@samsung.com>
Tue, 29 Sep 2015 09:27:23 +0000 (18:27 +0900)
Since atspi_init do not count reference we must assure that
atspi_init and atspi_exit are called exeacly once.

Change-Id: Ib1f5cea5fbae3770e666c86c09863870a85935b1

src/keyboard_tracker.c
src/main.c

index 0696183..a19c4fa 100644 (file)
@@ -156,7 +156,6 @@ static gboolean device_cb(const AtspiDeviceEvent * stroke, void *data)
 
 void keyboard_tracker_init(void)
 {
-       atspi_init();
        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);
        active_xwindow_property_tracker_register();
index f2aa9ab..fd49086 100644 (file)
@@ -212,6 +212,7 @@ void set_signal_handler()
 static int app_create(void *data)
 {
        elm_init(0, NULL);
+       atspi_init();
 
        logger_init();
        screen_reader_create_service(data);
@@ -239,6 +240,10 @@ static int app_terminate(void *data)
        DEBUG("terminate logger");
        logger_shutdown();
        DEBUG("screen reader terminated");
+
+       DEBUG("libatspi terminated");
+       atspi_exit();
+
        return 0;
 }