#include <atspi/atspi.h>
#include "keyboard_tracker.h"
#include "logger.h"
-#include <Ecore.h>
-static Ecore_Thread *thread;
static AtspiDeviceListener *listener;
static Keyboard_Tracker_Cb user_cb;
static void *user_data;
return TRUE;
}
-void blocking(void *list, Ecore_Thread *th)
-{
- atspi_event_main();
-}
-
-void cancel(void *list, Ecore_Thread *th)
-{
- atspi_event_quit();
-}
-
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);
-
- ecore_init();
- thread = ecore_thread_run(blocking, NULL, cancel, NULL);
- ERROR("keyboard tracker init");
+ DEBUG("keyboard tracker init");
}
void keyboard_tracker_register(Keyboard_Tracker_Cb cb, void *data)
void keyboard_tracker_shutdown(void)
{
- ecore_thread_cancel(thread);
- ERROR("keyboard tracker shutdown");
+ atspi_deregister_keystroke_listener(listener, NULL, 0, ATSPI_KEY_PRESSED, NULL);
+ DEBUG("keyboard tracker shutdown");
}
top_window = window;
}
+void kb_tracker (void *data, Key k)
+{
+ switch(k)
+ {
+ case KEY_LEFT:
+ _focus_prev();
+ break;
+ case KEY_RIGHT:
+ _focus_next();
+ break;
+ default:
+ DEBUG("Key %d not supported \n", k);
+ }
+}
+
void navigator_init(void)
{
// register on gesture_getected
app_tracker_init();
smart_notification_init();
system_notifications_init();
+ keyboard_tracker_init();
+ keyboard_tracker_register(kb_tracker, NULL);
}
void navigator_shutdown(void)
window_tracker_shutdown();
smart_notification_shutdown();
system_notifications_shutdown();
+ keyboard_tracker_shutdown();
}