discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=15ea942ab859b6ce542d60dfcbdfef44c2310c73

commit 15ea942ab859b6ce542d60dfcbdfef44c2310c73
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri May 26 16:34:13 2017 -0400

    update wl input to use new keyboard context/keymap api
    
    fix keymap changes on compositor canvas
---
 src/bin/e_comp_wl_input.c | 26 ++++++++++++++++----------
 1 file changed, 16 insertions(+), 10 deletions(-)

diff --git a/src/bin/e_comp_wl_input.c b/src/bin/e_comp_wl_input.c
index 90e833755..1e05d7747 100644
--- a/src/bin/e_comp_wl_input.c
+++ b/src/bin/e_comp_wl_input.c
@@ -667,25 +667,19 @@ _e_comp_wl_input_context_keymap_set(struct xkb_keymap 
*keymap, struct xkb_contex
         cached_keymap = keymap;
      }
 
+   if (!e_comp->ee) return;
 //set the values to the drm devices
 #ifdef HAVE_WL_DRM
 # ifdef HAVE_DRM2
-   if (e_config->xkb.use_cache)
+   if (strstr(ecore_evas_engine_name_get(e_comp->ee), "drm"))
      {
         Ecore_Drm2_Device *dev;
 
         dev = ecore_evas_data_get(e_comp->ee, "device");
         if (dev)
-          {
-             ecore_drm2_device_keyboard_cached_context_set(dev, context);
-             ecore_drm2_device_keyboard_cached_keymap_set(dev, keymap);
-          }
+          ecore_drm2_device_keyboard_info_set(dev, context, keymap,
+            e_comp_wl ? e_comp_wl->kbd.choosen_group : choosen_group);
      }
-# else
-   if (e_config->xkb.use_cache)
-     ecore_drm_device_keyboard_cached_context_set(context);
-   if (e_config->xkb.use_cache)
-     ecore_drm_device_keyboard_cached_keymap_set(keymap);
 # endif
 #endif
 }
@@ -693,6 +687,18 @@ _e_comp_wl_input_context_keymap_set(struct xkb_keymap 
*keymap, struct xkb_contex
 E_API void
 e_comp_wl_input_keymap_index_set(xkb_layout_index_t index)
 {
+#ifdef HAVE_WL_DRM
+# ifdef HAVE_DRM2
+   if (e_comp && e_comp->ee && strstr(ecore_evas_engine_name_get(e_comp->ee), 
"drm"))
+     {
+        Ecore_Drm2_Device *dev;
+
+        dev = ecore_evas_data_get(e_comp->ee, "device");
+        if (dev)
+          ecore_drm2_device_keyboard_group_set(dev, index);
+     }
+# endif
+#endif
    if (e_comp_wl)
      {
         e_comp_wl->kbd.choosen_group = index;

-- 


Reply via email to