input: use pepper-xkb api to create/set keymap instead of pepper and xkbcommon apis 77/134577/1
authorSung-Jin Park <sj76.park@samsung.com>
Mon, 19 Jun 2017 08:43:47 +0000 (17:43 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Mon, 19 Jun 2017 08:43:47 +0000 (17:43 +0900)
Change-Id: Icce919341a32b747f2dda9a0062a9a5ced2885f7
Signed-off-by: Sung-Jin Park <sj76.park@samsung.com>
configure.ac
packaging/libpepper-efl.spec
src/lib/input.c
src/lib/input.h
src/lib/private.h

index 2c7371389973d5240ad70d32bb37cc177e983a71..16717c8e822f11f254a9783f11ab42fd7e02a0aa 100644 (file)
@@ -13,7 +13,7 @@ AC_PROG_CC
 AC_PROG_LIBTOOL
 
 # Checks for libraries.
-PKG_CHECK_MODULES([PEPPER], [pepper xkbcommon])
+PKG_CHECK_MODULES([PEPPER], [pepper pepper-xkb])
 PKG_CHECK_MODULES([WAYLAND], [wayland-server xdg-shell-server tizen-extension-client])
 PKG_CHECK_MODULES([EFL], [eina ecore ecore-input evas ecore-wayland])
 PKG_CHECK_MODULES([WAYLAND_TBM], [wayland-tbm-server])
index 5e1b35e42fd973f8615da5865f409dabf1439bcf..bc46f55c3b5f4bff34a5adaef15de91a3a32aeaf 100644 (file)
@@ -10,6 +10,7 @@ Source1001: %{name}.manifest
 
 BuildRequires: pkgconfig(wayland-server)
 BuildRequires: pkgconfig(pepper)
+BuildRequires: pkgconfig(pepper-xkb)
 BuildRequires: pkgconfig(elementary)
 BuildRequires: pkgconfig(xdg-shell-server)
 BuildRequires: pkgconfig(xkbcommon)
@@ -18,6 +19,7 @@ BuildRequires: pkgconfig(ecore-wayland)
 BuildRequires: pkgconfig(wayland-tbm-server)
 BuildRequires: pkgconfig(wayland-tbm-client)
 Requires: libwayland-extension-server
+Requires: pepper-xkb
 
 %description
 EFL backend for pepper.
index a8caadcee42c6043d6fb817e9a53183a7bd5d0ef..7718c8b187be95dc8e013b334983a7e9284f3938 100644 (file)
@@ -2,46 +2,11 @@
 
 #include <Ecore_Input.h>
 
-#include <xkbcommon/xkbcommon.h>
+#include <pepper-xkb.h>
 #include <pepper-input-backend.h>
 
 static Eina_List *handlers = NULL;
 
-static void
-_pepper_efl_input_keymap_set(pepper_efl_input_t *input)
-{
-   struct xkb_keymap *keymap;
-   struct xkb_context *context;
-   struct xkb_rule_names names = { /* FIXME: hard coded */
-      .rules = "evdev",
-      .model = "pc105",
-      .layout = "us",
-      .options = NULL
-   };
-
-   DBG("Set Keymap");
-
-   context = xkb_context_new(XKB_CONTEXT_NO_FLAGS);
-   if (!context)
-     {
-        ERR("failed to create xkb_context");
-        return;
-     }
-
-   keymap = xkb_map_new_from_names(context, &names, XKB_KEYMAP_COMPILE_NO_FLAGS);
-   if (!keymap)
-     {
-        ERR("failed to get keymap");
-        xkb_context_unref(context);
-        return;
-     }
-
-   pepper_keyboard_set_keymap(input->keyboard, keymap);
-   xkb_map_unref(keymap);
-
-   input->xkb.context = context;
-}
-
 static Eina_Bool
 _pepper_efl_input_cb_key_down(void *data, int ev_type EINA_UNUSED, Ecore_Event_Key *ev)
 {
@@ -116,7 +81,9 @@ pepper_efl_input_create(pepper_efl_comp_t *comp)
    input->touch = pepper_seat_get_touch(input->seat);
    input->comp = comp;
 
-   _pepper_efl_input_keymap_set(input);
+   input->xkb = pepper_xkb_create();
+   if (input->xkb)
+     pepper_xkb_keyboard_set_keymap(input->xkb, input->keyboard, NULL);
 
    PE_LIST_HANDLER_APPEND(handlers, ECORE_EVENT_KEY_DOWN, _pepper_efl_input_cb_key_down, input);
    PE_LIST_HANDLER_APPEND(handlers, ECORE_EVENT_KEY_UP, _pepper_efl_input_cb_key_up, input);
@@ -146,7 +113,7 @@ pepper_efl_input_destroy(pepper_efl_input_t *input)
         handlers = eina_list_remove(handlers, hdl);
      }
 
-   xkb_context_unref(input->xkb.context);
+   pepper_xkb_destroy(input->xkb);
 
    pepper_seat_remove_input_device(input->seat, input->device);
    pepper_input_device_destroy(input->device);
index 1ade773c7f5c3e1524eb622fab83e4220fac70be..33d71d6ed004679e44edb11ae831985bf1fd2725 100644 (file)
@@ -12,13 +12,9 @@ struct pepper_efl_input
    pepper_pointer_t *pointer;
    pepper_keyboard_t *keyboard;
    pepper_touch_t *touch;
+   pepper_xkb_t *xkb;
 
    char *name;
-
-   struct
-   {
-      struct xkb_context *context;
-   } xkb;
 };
 
 pepper_efl_input_t   *pepper_efl_input_create(pepper_efl_comp_t *comp);
index 25a4fde60e175f6adb06189aa9e8b07ae5f332dd..b6a33a90cabd094acd18373da2ddfa92ae622418 100644 (file)
@@ -8,6 +8,7 @@
 #include <Evas.h>
 
 #include <pepper.h>
+#include <pepper-xkb.h>
 #include <wayland-server.h>
 #include <wayland-tbm-server.h>