e_input: move kbd structure to e_comp_input_intern.h
authorJihoon Kim <jihoon48.kim@samsung.com>
Fri, 16 Feb 2024 12:17:50 +0000 (21:17 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Tue, 9 Apr 2024 01:52:31 +0000 (10:52 +0900)
Change-Id: Ie1321cf42e33a7e08fa81cbe6176d087c4cba618
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
src/bin/e_comp_input.c
src/bin/e_comp_input_intern.h
src/bin/e_comp_screen.c
src/bin/e_comp_wl.c
src/bin/e_comp_wl_data.c
src/bin/e_comp_wl_input.c
src/bin/e_info_server.c
src/bin/e_keyrouter_wl.c

index ba66fb506d5b8f8512d5afd8de95533e886fa13f..ef7fee8415d9ca6ee0dabb32aa45121135605891 100644 (file)
@@ -42,4 +42,4 @@ e_comp_input_shutdown(void)
 
         E_FREE(e_comp_input_key);
      }
-}
\ No newline at end of file
+}
index da73b4a010edae7bb32586a268d7c1f5d7483c19..cd3ed454bdbfe2ad382180c712367c9985190f92 100644 (file)
@@ -17,6 +17,25 @@ struct _E_Comp_Input_Key_Data
         size_t size;
         char *area;
      } xkb;
+
+   struct
+     {
+        Eina_List *resources;
+        Eina_List *focused;
+        Eina_Bool enabled : 1;
+        xkb_mod_index_t mod_shift, mod_caps;
+        xkb_mod_index_t mod_ctrl, mod_alt;
+        xkb_mod_index_t mod_super;
+        xkb_mod_mask_t mod_depressed, mod_latched, mod_locked;
+        xkb_layout_index_t mod_group;
+        struct wl_array keys;
+        struct wl_array routed_keys;
+        struct wl_resource *focus;
+        int mod_changed;
+        atomic_int repeat_delay;
+        atomic_int repeat_rate;
+        unsigned int num_devices;
+     } kbd;
 };
 
 extern EINTERN E_Comp_Input_Key_Data *e_comp_input_key;
index db3029de280cf75b1fcd07242c7d9b84744601d7..1d547a424335b62a535e3f1061799d045f4510e2 100644 (file)
@@ -21,6 +21,7 @@
 #include "e_main_intern.h"
 #include "e_hwc_planes_intern.h"
 #include "e_linux_dmabuf_intern.h"
+#include "e_comp_input_intern.h"
 
 #include <tizen-extension-server-protocol.h>
 #include <device/board-internal.h>
@@ -322,6 +323,7 @@ _e_comp_screen_cb_input_device_add(void *data, int type, void *event)
    else if (e->clas == ECORE_DEVICE_CLASS_KEYBOARD)
      {
         comp->wl_comp_data->kbd.num_devices++;
+        e_comp_input_key->kbd.num_devices++;
         e_comp_wl_input_keyboard_enabled_set(EINA_TRUE);
      }
    else if (e->clas == ECORE_DEVICE_CLASS_TOUCH)
@@ -391,6 +393,7 @@ _e_comp_screen_cb_input_device_del(void *data, int type, void *event)
    else if (e->clas == ECORE_DEVICE_CLASS_KEYBOARD)
      {
         comp->wl_comp_data->kbd.num_devices--;
+        e_comp_input_key->kbd.num_devices--;
         if (comp->wl_comp_data->kbd.num_devices == 0)
           {
              e_comp_wl_input_keyboard_enabled_set(EINA_FALSE);
index b4574585adbbe7836a3d98d0b648ac032d50d4c3..37d8b7ba5cfcc8e52db4f4ca6bfa4f5b1c6d57c0 100644 (file)
@@ -2007,7 +2007,7 @@ _e_comp_wl_input_thread_send_keys()
    Eina_List *l;
    double t;
 
-   if (!e_comp_wl->kbd.focused)
+   if (!e_comp_input_key->kbd.focused)
      {
         return;
      }
@@ -2015,9 +2015,9 @@ _e_comp_wl_input_thread_send_keys()
    serial = wl_display_next_serial(e_comp_wl->wl.disp);
    t = ecore_time_unix_get();
 
-   EINA_LIST_FOREACH(e_comp_wl->kbd.focused, l, res)
+   EINA_LIST_FOREACH(e_comp_input_key->kbd.focused, l, res)
      {
-        wl_array_for_each(k, &e_comp_wl->kbd.keys)
+        wl_array_for_each(k, &e_comp_input_key->kbd.keys)
           {
              _e_comp_wl_send_event_device(wl_resource_get_client(res), t, k->dev, serial);
              wl_keyboard_send_key(res, serial, t,
@@ -2051,21 +2051,21 @@ _e_comp_wl_input_thread_focus_in(void *data)
 
    wc = wl_resource_get_client(surface);
 
-   EINA_LIST_FOREACH(e_comp_wl->kbd.resources, l, res)
+   EINA_LIST_FOREACH(e_comp_input_key->kbd.resources, l, res)
      {
         if (wl_resource_get_client(res) == wc)
           {
-             if (!eina_list_data_find(e_comp_wl->kbd.focused, res))
-               e_comp_wl->kbd.focused = eina_list_append(e_comp_wl->kbd.focused, res);
+             if (!eina_list_data_find(e_comp_input_key->kbd.focused, res))
+               e_comp_input_key->kbd.focused = eina_list_append(e_comp_input_key->kbd.focused, res);
           }
      }
 
-   if (!e_comp_wl->kbd.focused)
+   if (!e_comp_input_key->kbd.focused)
      {
         return;
      }
 
-   e_comp_wl->kbd.focus = surface;
+   e_comp_input_key->kbd.focus = surface;
    e_comp_wl_input_keyboard_enter_send(surface);
    e_comp_wl_data_device_keyboard_focus_set();
 }
@@ -2124,12 +2124,12 @@ _e_comp_wl_input_thread_focus_out(void *data)
    memcpy(&surface, data, sizeof(struct wl_resource *));
 
    /* update keyboard modifier state */
-   wl_array_for_each(k, &e_comp_wl->kbd.keys)
+   wl_array_for_each(k, &e_comp_input_key->kbd.keys)
       e_comp_wl_input_keyboard_state_update(k->key, EINA_FALSE);
 
    if (!surface) return;
 
-   if (!eina_list_count(e_comp_wl->kbd.resources))
+   if (!eina_list_count(e_comp_input_key->kbd.resources))
      {
         return;
      }
@@ -2138,17 +2138,17 @@ _e_comp_wl_input_thread_focus_out(void *data)
    serial = wl_display_next_serial(e_comp_wl->wl.disp);
    t = ecore_time_unix_get();
 
-   EINA_LIST_FOREACH_SAFE(e_comp_wl->kbd.focused, l, ll, res)
+   EINA_LIST_FOREACH_SAFE(e_comp_input_key->kbd.focused, l, ll, res)
      {
-        wl_array_for_each(k, &e_comp_wl->kbd.keys)
+        wl_array_for_each(k, &e_comp_input_key->kbd.keys)
           {
              _e_comp_wl_send_event_device(wl_resource_get_client(res), t, k->dev, serial);
               wl_keyboard_send_key(res, serial, t,
                                    k->key, WL_KEYBOARD_KEY_STATE_RELEASED);
           }
         wl_keyboard_send_leave(res, serial, surface);
-        e_comp_wl->kbd.focused =
-           eina_list_remove_list(e_comp_wl->kbd.focused, l);
+        e_comp_input_key->kbd.focused =
+           eina_list_remove_list(e_comp_input_key->kbd.focused, l);
      }
 }
 
@@ -3267,12 +3267,13 @@ e_comp_wl_client_surface_finish(E_Client *ec)
    if (surface_client &&
        (ec == e_client_focused_get()))
      {
-        EINA_LIST_FOREACH_SAFE(e_comp_wl->kbd.focused, l, ll, res)
+        EINA_LIST_FOREACH_SAFE(e_comp_input_key->kbd.focused, l, ll, res)
           {
              if (wl_resource_get_client(res) ==
                  surface_client)
-               e_comp_wl->kbd.focused =
-                  eina_list_remove_list(e_comp_wl->kbd.focused, l);
+               e_comp_input_key->kbd.focused =
+                  eina_list_remove_list(e_comp_input_key->kbd.focused, l);
+
           }
      }
 
@@ -3393,7 +3394,7 @@ _e_comp_wl_client_cb_focus_set(void *data EINA_UNUSED, E_Client *ec)
           _e_comp_wl_configure_send(ec, 0, 0);
      }
 
-   e_comp_wl->kbd.focus = ec->comp_data->surface;
+   e_comp_input_key->kbd.focus = ec->comp_data->surface;
 }
 
 static void
@@ -3410,8 +3411,8 @@ _e_comp_wl_client_cb_focus_unset(void *data EINA_UNUSED, E_Client *ec)
 
    _e_comp_wl_focus_check();
 
-   if (e_comp_wl->kbd.focus == ec->comp_data->surface)
-     e_comp_wl->kbd.focus = NULL;
+   if (e_comp_input_key->kbd.focus == ec->comp_data->surface)
+     e_comp_input_key->kbd.focus = NULL;
 }
 
 static void
@@ -4312,9 +4313,9 @@ e_comp_wl_key_down(Ecore_Event_Key *ev, E_Device *dev)
      }
 #endif
 
-   end = (E_Comp_Wl_Key_Data *)e_comp_wl->kbd.keys.data + (e_comp_wl->kbd.keys.size / sizeof(*k));
+   end = (E_Comp_Wl_Key_Data *)e_comp_input_key->kbd.keys.data + (e_comp_input_key->kbd.keys.size / sizeof(*k));
 
-   for (k = e_comp_wl->kbd.keys.data; k < end; k++)
+   for (k = e_comp_input_key->kbd.keys.data; k < end; k++)
      {
         /* ignore server-generated key repeats */
         if (k->key == keycode)
@@ -4329,14 +4330,14 @@ e_comp_wl_key_down(Ecore_Event_Key *ev, E_Device *dev)
         struct wl_resource *surface = e_comp_wl_client_surface_get(ec);
         if (ec && ec->comp_data && surface)
           {
-             if (e_comp_wl->kbd.focused)
+             if (e_comp_input_key->kbd.focused)
                {
-                  _e_comp_wl_key_send(ev, dev, WL_KEYBOARD_KEY_STATE_PRESSED, e_comp_wl->kbd.focused, ec);
+                  _e_comp_wl_key_send(ev, dev, WL_KEYBOARD_KEY_STATE_PRESSED, e_comp_input_key->kbd.focused, ec);
 
                   /* A key only sent to clients is added to the list */
-                  e_comp_wl->kbd.keys.size = (const char *)end - (const char *)e_comp_wl->kbd.keys.data;
+                  e_comp_input_key->kbd.keys.size = (const char *)end - (const char *)e_comp_input_key->kbd.keys.data;
 
-                  if (!(k = wl_array_add(&e_comp_wl->kbd.keys, sizeof(*k))))
+                  if (!(k = wl_array_add(&e_comp_input_key->kbd.keys, sizeof(*k))))
                     {
                        DBG("wl_array_add: Out of memory\n");
                        return EINA_FALSE;
@@ -4372,8 +4373,8 @@ e_comp_wl_key_up(Ecore_Event_Key *ev, E_Device *dev)
         return EINA_FALSE;
      }
 
-   end = (E_Comp_Wl_Key_Data *)e_comp_wl->kbd.keys.data + (e_comp_wl->kbd.keys.size / sizeof(*k));
-   for (k = e_comp_wl->kbd.keys.data; k < end; k++)
+   end = (E_Comp_Wl_Key_Data *)e_comp_input_key->kbd.keys.data + (e_comp_input_key->kbd.keys.size / sizeof(*k));
+   for (k = e_comp_input_key->kbd.keys.data; k < end; k++)
      {
         if (k->key == keycode)
           {
@@ -4382,8 +4383,8 @@ e_comp_wl_key_up(Ecore_Event_Key *ev, E_Device *dev)
           }
      }
 
-   e_comp_wl->kbd.keys.size =
-     (const char *)end - (const char *)e_comp_wl->kbd.keys.data;
+   e_comp_input_key->kbd.keys.size =
+     (const char *)end - (const char *)e_comp_input_key->kbd.keys.data;
 
    /* If a key down event have been sent to clients, send a key up event to client for garantee key event sequence pair. (down/up) */
    if ((delivered_key) ||
@@ -4391,9 +4392,9 @@ e_comp_wl_key_up(Ecore_Event_Key *ev, E_Device *dev)
      {
         ec = e_client_focused_get();
 
-        if (e_comp_wl->kbd.focused)
+        if (e_comp_input_key->kbd.focused)
           {
-             _e_comp_wl_key_send(ev, dev, WL_KEYBOARD_KEY_STATE_RELEASED, e_comp_wl->kbd.focused, ec);
+             _e_comp_wl_key_send(ev, dev, WL_KEYBOARD_KEY_STATE_RELEASED, e_comp_input_key->kbd.focused, ec);
           }
      }
 
@@ -4655,7 +4656,7 @@ e_comp_wl_key_send(E_Client *ec, int keycode, Eina_Bool pressed, void *dev, uint
         ELOGF("INPUT", "wl_keyboard_send_key:%s:%d|B|", NULL, (state ? "PRESS" : "RELEASE"), keycode);
      }
 
-   EINA_LIST_FOREACH(e_comp_wl->kbd.resources, l, res)
+   EINA_LIST_FOREACH(e_comp_input_key->kbd.resources, l, res)
      {
         if (wl_resource_get_client(res) != wc) continue;
         if (!e_input_thread_mode_get())
@@ -4737,7 +4738,7 @@ e_comp_wl_key_cancel(E_Client *ec, int keycode, Ecore_Device *dev, uint32_t time
    comp_conf = e_comp_config_get();
    e_keyrouter_event_surface_send(ec, keycode);
 
-   EINA_LIST_FOREACH(e_comp_wl->kbd.resources, l, res)
+   EINA_LIST_FOREACH(e_comp_input_key->kbd.resources, l, res)
      {
         if (wl_resource_get_client(res) != wc) continue;
         if (dev) _e_comp_wl_send_event_device(wc, time, dev, serial);
index 54a77934bf6006d6d8b9618d975d69919b3f9a2b..8b30ac96c327f7e99707ddbaabed3b6e4748ac15 100644 (file)
@@ -3,6 +3,7 @@
 #include "e_comp_canvas_intern.h"
 #include "e_comp_wl_intern.h"
 #include "e_dnd_intern.h"
+#include "e_comp_input_intern.h"
 
 #include <fcntl.h>
 #include <unistd.h>
@@ -602,8 +603,8 @@ _e_comp_wl_data_device_destroy_selection_data_source(struct wl_listener *listene
         return;
      }
 
-   if (e_comp_wl->kbd.enabled)
-     focus = e_comp_wl->kbd.focus;
+   if (e_comp_input_key->kbd.enabled)
+     focus = e_comp_input_key->kbd.focus;
 
    if (focus)
      {
@@ -778,8 +779,8 @@ _e_comp_wl_data_device_selection_set(void *data EINA_UNUSED, E_Comp_Wl_Data_Sour
    e_comp_wl->clipboard.xwl_owner = NULL;
    e_comp_wl->selection.serial = serial;
 
-   if (e_comp_wl->kbd.enabled)
-     focus = e_comp_wl->kbd.focus;
+   if (e_comp_input_key->kbd.enabled)
+     focus = e_comp_input_key->kbd.focus;
 
    //if source is from cbhm_client do not create data offer for cbhm
    if ((cbhm_client) && (source_client != cbhm_client))
@@ -1382,13 +1383,13 @@ e_comp_wl_data_device_keyboard_focus_set(void)
    struct wl_resource *data_device_res, *offer_res = NULL, *focus;
    E_Comp_Wl_Data_Source *source;
 
-   if (!e_comp_wl->kbd.enabled)
+   if (!e_comp_input_key->kbd.enabled)
      {
         ERR("Keyboard not enabled");
         return;
      }
 
-   if (!(focus = e_comp_wl->kbd.focus))
+   if (!(focus = e_comp_input_key->kbd.focus))
      {
         ERR("No focused resource");
         return;
@@ -1603,7 +1604,7 @@ e_comp_wl_data_device_only_set(struct wl_resource *data_device_res, Eina_Bool se
         e_comp_wl->selection.data_only_list =
            eina_list_remove(e_comp_wl->selection.data_only_list, data_device_res);
 
-        focus = e_comp_wl->kbd.focus;
+        focus = e_comp_input_key->kbd.focus;
         if ((!focus) ||
             (wl_resource_get_client(focus) != wl_resource_get_client(data_device_res)))
           {
index 275efa27e55b2d7c91b2bbe809ceb3621aa6d968..14f41a9cc7b79fee1947f245d0f9ebe967055f12 100644 (file)
@@ -86,7 +86,7 @@ _e_comp_wl_input_update_seat_caps(struct wl_client *wc)
 
    if (e_comp_wl->ptr.enabled)
      caps |= WL_SEAT_CAPABILITY_POINTER;
-   if (e_comp_wl->kbd.enabled)
+   if (e_comp_input_key->kbd.enabled)
      caps |= WL_SEAT_CAPABILITY_KEYBOARD;
    if (e_comp_wl->touch.enabled)
      caps |= WL_SEAT_CAPABILITY_TOUCH;
@@ -320,13 +320,13 @@ _e_comp_wl_input_thread_cb_keyboard_unbind(void *data)
 
    memcpy(&resource, data, sizeof(struct wl_resource *));
 
-   e_comp_wl->kbd.resources =
-     eina_list_remove(e_comp_wl->kbd.resources, resource);
+   e_comp_input_key->kbd.resources =
+     eina_list_remove(e_comp_input_key->kbd.resources, resource);
 
-   EINA_LIST_FOREACH_SAFE(e_comp_wl->kbd.focused, l, ll, res)
+   EINA_LIST_FOREACH_SAFE(e_comp_input_key->kbd.focused, l, ll, res)
      if (res == resource)
-       e_comp_wl->kbd.focused =
-         eina_list_remove_list(e_comp_wl->kbd.focused, l);
+       e_comp_input_key->kbd.focused =
+         eina_list_remove_list(e_comp_input_key->kbd.focused, l);
 }
 
 static void
@@ -345,7 +345,7 @@ e_comp_wl_input_keyboard_enter_send(struct wl_resource *surface)
    xkb_mod_mask_t mod_depressed, mod_latched, mod_locked;
    xkb_layout_index_t mod_group;
 
-   if (!e_comp_wl->kbd.focused)
+   if (!e_comp_input_key->kbd.focused)
      {
         return;
      }
@@ -354,16 +354,16 @@ e_comp_wl_input_keyboard_enter_send(struct wl_resource *surface)
 
    serial = wl_display_next_serial(e_comp_wl->wl.disp);
 
-   mod_depressed = atomic_load(&e_comp_wl->kbd.mod_depressed);
-   mod_latched = atomic_load(&e_comp_wl->kbd.mod_latched);
-   mod_locked = atomic_load(&e_comp_wl->kbd.mod_locked);
+   mod_depressed = atomic_load(&e_comp_input_key->kbd.mod_depressed);
+   mod_latched = atomic_load(&e_comp_input_key->kbd.mod_latched);
+   mod_locked = atomic_load(&e_comp_input_key->kbd.mod_locked);
 
-   mod_group = atomic_load(&e_comp_wl->kbd.mod_group);
+   mod_group = atomic_load(&e_comp_input_key->kbd.mod_group);
 
-   EINA_LIST_FOREACH(e_comp_wl->kbd.focused, l, res)
+   EINA_LIST_FOREACH(e_comp_input_key->kbd.focused, l, res)
      {
         wl_keyboard_send_enter(res, serial, surface,
-                               &e_comp_wl->kbd.keys);
+                               &e_comp_input_key->kbd.keys);
 
         wl_keyboard_send_modifiers(res, serial,
                                    mod_depressed,
@@ -384,8 +384,8 @@ _e_comp_wl_input_thread_cb_keyboard_get(void *data)
 
    res = keyboard_get_data.resource;
 
-   e_comp_wl->kbd.resources =
-     eina_list_append(e_comp_wl->kbd.resources, res);
+   e_comp_input_key->kbd.resources =
+     eina_list_append(e_comp_input_key->kbd.resources, res);
 
    wl_resource_set_implementation(res, &_e_keyboard_interface,
                                   e_comp->wl_comp_data,
@@ -394,7 +394,7 @@ _e_comp_wl_input_thread_cb_keyboard_get(void *data)
    /* send current repeat_info */
    if (wl_resource_get_version(res) >= WL_KEYBOARD_REPEAT_INFO_SINCE_VERSION)
      {
-        wl_keyboard_send_repeat_info(res, e_comp_wl->kbd.repeat_rate, e_comp_wl->kbd.repeat_delay);
+        wl_keyboard_send_repeat_info(res, e_comp_input_key->kbd.repeat_rate, e_comp_input_key->kbd.repeat_delay);
      }
 
    /* if the client owns the focused surface, we need to send an enter */
@@ -406,7 +406,7 @@ _e_comp_wl_input_thread_cb_keyboard_get(void *data)
    if (!surface) return;
 
    if (keyboard_get_data.client != wl_resource_get_client(surface)) return;
-   e_comp_wl->kbd.focused = eina_list_append(e_comp_wl->kbd.focused, res);
+   e_comp_input_key->kbd.focused = eina_list_append(e_comp_input_key->kbd.focused, res);
 
    e_comp_wl_input_keyboard_enter_send(surface);
 }
@@ -1467,15 +1467,15 @@ _e_comp_wl_input_keymap_update(struct xkb_keymap *keymap, const char *keymap_pat
    e_comp_input_key->xkb.keymap = keymap;
 
    /* fetch updated modifiers */
-   e_comp_wl->kbd.mod_shift =
+   e_comp_input_key->kbd.mod_shift =
      xkb_map_mod_get_index(keymap, XKB_MOD_NAME_SHIFT);
-   e_comp_wl->kbd.mod_caps =
+   e_comp_input_key->kbd.mod_caps =
      xkb_map_mod_get_index(keymap, XKB_MOD_NAME_CAPS);
-   e_comp_wl->kbd.mod_ctrl =
+   e_comp_input_key->kbd.mod_ctrl =
      xkb_map_mod_get_index(keymap, XKB_MOD_NAME_CTRL);
-   e_comp_wl->kbd.mod_alt =
+   e_comp_input_key->kbd.mod_alt =
      xkb_map_mod_get_index(keymap, XKB_MOD_NAME_ALT);
-   e_comp_wl->kbd.mod_super =
+   e_comp_input_key->kbd.mod_super =
      xkb_map_mod_get_index(keymap, XKB_MOD_NAME_LOGO);
 
    if (!(tmp = xkb_map_get_as_string(keymap)))
@@ -1513,7 +1513,7 @@ _e_comp_wl_input_keymap_update(struct xkb_keymap *keymap, const char *keymap_pat
 
    /* send updated keymap */
    TRACE_INPUT_BEGIN(wl_keyboard_send_keymap_update);
-   EINA_LIST_FOREACH(e_comp_wl->kbd.resources, l, res)
+   EINA_LIST_FOREACH(e_comp_input_key->kbd.resources, l, res)
      wl_keyboard_send_keymap(res, WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1,
                              e_comp_input_key->xkb.fd,
                              e_comp_input_key->xkb.size);
@@ -1545,18 +1545,18 @@ e_comp_wl_input_init(void)
    g_mutex_init(&e_comp_wl->xkb.state_mutex);
 
    /* get default keyboard repeat delay from configuration */
-   atomic_store(&e_comp_wl->kbd.repeat_delay, e_config->keyboard.repeat_delay);
+   atomic_store(&e_comp_input_key->kbd.repeat_delay, e_config->keyboard.repeat_delay);
    /* check for valid repeat_delay */
    /* if invalid, set the default value of repeat delay */
-   if (e_comp_wl->kbd.repeat_delay < 0)
-     atomic_store(&e_comp_wl->kbd.repeat_delay, 400);
+   if (e_comp_input_key->kbd.repeat_delay < 0)
+     atomic_store(&e_comp_input_key->kbd.repeat_delay, 400);
 
    /* get default keyboard repeat rate from configuration */
-   atomic_store(&e_comp_wl->kbd.repeat_rate, e_config->keyboard.repeat_rate);
+   atomic_store(&e_comp_input_key->kbd.repeat_rate, e_config->keyboard.repeat_rate);
    /* check for valid repeat_rate value */
    /* if invalid, set the default value of repeat rate value */
-   if (e_comp_wl->kbd.repeat_rate < 0)
-     atomic_store(&e_comp_wl->kbd.repeat_rate, 25);
+   if (e_comp_input_key->kbd.repeat_rate < 0)
+     atomic_store(&e_comp_input_key->kbd.repeat_rate, 25);
 
    /* create the global resource for input seat */
    e_comp_wl->seat.global =
@@ -1604,8 +1604,8 @@ e_comp_wl_input_init(void)
                                              _e_comp_wl_input_cb_surface_commit,
                                              NULL);
 
-   wl_array_init(&e_comp_wl->kbd.keys);
-   wl_array_init(&e_comp_wl->kbd.routed_keys);
+   wl_array_init(&e_comp_input_key->kbd.keys);
+   wl_array_init(&e_comp_input_key->kbd.routed_keys);
 
    E_EVENT_TEXT_INPUT_PANEL_VISIBILITY_CHANGE = ecore_event_type_new();
 
@@ -1655,9 +1655,9 @@ e_comp_wl_input_shutdown(void)
      wl_resource_destroy(res);
 
    /* destroy keyboard resources */
-   EINA_LIST_FREE(e_comp_wl->kbd.resources, res)
+   EINA_LIST_FREE(e_comp_input_key->kbd.resources, res)
      wl_resource_destroy(res);
-   e_comp_wl->kbd.resources = eina_list_free(e_comp_wl->kbd.resources);
+   e_comp_input_key->kbd.resources = eina_list_free(e_comp_input_key->kbd.resources);
 
    g_mutex_clear(&e_comp_wl->kbd.resource_mutex);
    g_mutex_clear(&e_comp_wl->kbd.focused_mutex);
@@ -1666,10 +1666,10 @@ e_comp_wl_input_shutdown(void)
    EINA_LIST_FREE(e_comp_wl->touch.resources, res)
      wl_resource_destroy(res);
 
-   /* destroy e_comp_wl->kbd.keys array */
+   /* destroy e_comp_input_key->kbd.keys array */
    wl_array_release(&e_comp_wl->kbd.keys);
 
-   wl_array_release(&e_comp_wl->kbd.routed_keys);
+   wl_array_release(&e_comp_input_key->kbd.routed_keys);
 
    /* unmap any existing keyboard area */
    if (e_comp_wl->xkb.area)
@@ -1749,28 +1749,28 @@ e_comp_wl_input_keyboard_modifiers_serialize(void)
 
    mod = xkb_state_serialize_mods(e_comp_input_key->xkb.state,
                               XKB_STATE_DEPRESSED);
-   mod_depressed = atomic_load(&e_comp_wl->kbd.mod_depressed);
+   mod_depressed = atomic_load(&e_comp_input_key->kbd.mod_depressed);
    changed |= mod != mod_depressed;
-   atomic_store(&e_comp_wl->kbd.mod_depressed, mod);
+   atomic_store(&e_comp_input_key->kbd.mod_depressed, mod);
 
    mod = xkb_state_serialize_mods(e_comp_input_key->xkb.state,
                               XKB_STATE_MODS_LATCHED);
 
-   mod_latched = atomic_load(&e_comp_wl->kbd.mod_latched);
+   mod_latched = atomic_load(&e_comp_input_key->kbd.mod_latched);
    changed |= mod != mod_latched;
-   atomic_store(&e_comp_wl->kbd.mod_latched, mod);
+   atomic_store(&e_comp_input_key->kbd.mod_latched, mod);
 
    mod = xkb_state_serialize_mods(e_comp_input_key->xkb.state,
                               XKB_STATE_MODS_LOCKED);
-   mod_locked = atomic_load(&e_comp_wl->kbd.mod_locked);
+   mod_locked = atomic_load(&e_comp_input_key->kbd.mod_locked);
    changed |= mod != mod_locked;
-   atomic_store(&e_comp_wl->kbd.mod_locked, mod);
+   atomic_store(&e_comp_input_key->kbd.mod_locked, mod);
 
    grp = xkb_state_serialize_layout(e_comp_input_key->xkb.state,
                                 XKB_STATE_LAYOUT_EFFECTIVE);
-   mod_group = atomic_load(&e_comp_wl->kbd.mod_group);
+   mod_group = atomic_load(&e_comp_input_key->kbd.mod_group);
    changed |= grp != mod_group;
-   atomic_store(&e_comp_wl->kbd.mod_group, grp);
+   atomic_store(&e_comp_input_key->kbd.mod_group, grp);
 
    return changed;
 }
@@ -1783,18 +1783,18 @@ e_comp_wl_input_keyboard_modifiers_update(void)
    Eina_List *l;
 
    if (!e_comp_wl_input_keyboard_modifiers_serialize()) return;
-   if (!e_comp_wl->kbd.focused)
+   if (!e_comp_input_key->kbd.focused)
      {
        return;
      }
 
    serial = wl_display_next_serial(e_comp_wl->wl.disp);
-   EINA_LIST_FOREACH(e_comp_wl->kbd.focused, l, res)
+   EINA_LIST_FOREACH(e_comp_input_key->kbd.focused, l, res)
      wl_keyboard_send_modifiers(res, serial,
-                                e_comp_wl->kbd.mod_depressed,
-                                e_comp_wl->kbd.mod_latched,
-                                e_comp_wl->kbd.mod_locked,
-                                e_comp_wl->kbd.mod_group);
+                                e_comp_input_key->kbd.mod_depressed,
+                                e_comp_input_key->kbd.mod_latched,
+                                e_comp_input_key->kbd.mod_locked,
+                                e_comp_input_key->kbd.mod_group);
 }
 
 EINTERN void
@@ -1810,7 +1810,7 @@ e_comp_wl_input_keyboard_state_update(uint32_t keycode, Eina_Bool pressed)
    if (pressed) dir = XKB_KEY_DOWN;
    else dir = XKB_KEY_UP;
 
-   atomic_store(&e_comp_wl->kbd.mod_changed, xkb_state_update_key(e_comp_input_key->xkb.state, keycode + 8, dir));
+   atomic_store(&e_comp_input_key->kbd.mod_changed, xkb_state_update_key(e_comp_input_key->xkb.state, keycode + 8, dir));
 
    e_comp_wl_input_keyboard_modifiers_update();
 }
@@ -1839,7 +1839,7 @@ e_comp_wl_input_keyboard_enabled_set(Eina_Bool enabled)
         return;
      }
 
-   e_comp_wl->kbd.enabled = !!enabled;
+   e_comp_input_key->kbd.enabled = !!enabled;
    _e_comp_wl_input_update_seat_caps(NULL);
 }
 
@@ -2101,7 +2101,7 @@ e_comp_wl_input_seat_caps_set(unsigned int caps)
    if (caps & E_INPUT_SEAT_POINTER)
      e_comp_wl->ptr.enabled = need_update = EINA_TRUE;
    if (caps & E_INPUT_SEAT_KEYBOARD)
-     e_comp_wl->kbd.enabled = need_update = EINA_TRUE;
+     e_comp_input_key->kbd.enabled = need_update = EINA_TRUE;
    if (caps & E_INPUT_SEAT_TOUCH)
      e_comp_wl->touch.enabled = need_update = EINA_TRUE;
 
@@ -2124,14 +2124,14 @@ e_comp_wl_input_keyboard_repeat_set(int delay, int rate)
 
    EINA_SAFETY_ON_NULL_RETURN(e_comp_wl);
 
-   atomic_store(&e_comp_wl->kbd.repeat_delay, delay);
-   atomic_store(&e_comp_wl->kbd.repeat_rate, rate);
+   atomic_store(&e_comp_input_key->kbd.repeat_delay, delay);
+   atomic_store(&e_comp_input_key->kbd.repeat_rate, rate);
 
-   EINA_LIST_FOREACH(e_comp_wl->kbd.resources, l, res)
+   EINA_LIST_FOREACH(e_comp_input_key->kbd.resources, l, res)
      {
         if (wl_resource_get_version(res) >= WL_KEYBOARD_REPEAT_INFO_SINCE_VERSION)
-          wl_keyboard_send_repeat_info(res, e_comp_wl->kbd.repeat_rate,
-                                       e_comp_wl->kbd.repeat_delay);
+          wl_keyboard_send_repeat_info(res, e_comp_input_key->kbd.repeat_rate,
+                                       e_comp_input_key->kbd.repeat_delay);
      }
 }
 
index 5bae956fba28a3a5c2fa261e1a47526794c598c0..6e322211c0fd1655ef247f2ad17904a67343e494 100644 (file)
@@ -6649,14 +6649,14 @@ _e_info_server_cb_key_repeat(const Eldbus_Service_Interface *iface EINA_UNUSED,
         EINA_SAFETY_ON_NULL_RETURN_VAL(log_fp, reply);
 
         fprintf(log_fp, "\tkeyboard repeat info\n");
-        fprintf(log_fp, "\t\trate: %d (ms), delay: %d (ms)\n", e_comp_wl->kbd.repeat_rate, e_comp_wl->kbd.repeat_delay);
+        fprintf(log_fp, "\t\trate: %d (ms), delay: %d (ms)\n", e_comp_input_key->kbd.repeat_rate, e_comp_input_key->kbd.repeat_delay);
         fclose(log_fp);
         log_fp = NULL;
      }
    else
      {
-        if (delay <= 0) delay = e_comp_wl->kbd.repeat_delay;
-        if (rate <= 0) rate = e_comp_wl->kbd.repeat_rate;
+        if (delay <= 0) delay = e_comp_input_key->kbd.repeat_delay;
+        if (rate <= 0) rate = e_comp_input_key->kbd.repeat_rate;
 
         e_comp_wl_input_keyboard_repeat_set(delay, rate);
      }
index aa2998aca56432f461954900b1ab826982009098..c3f3e5c6064cb4ab152d1bd0ab225191f690512c 100644 (file)
@@ -5,6 +5,7 @@
 #include "e_client_intern.h"
 #include "e_config_intern.h"
 #include "e_security.h"
+#include "e_comp_input_intern.h"
 
 #include <tizen-extension-server-protocol.h>
 
@@ -134,7 +135,7 @@ e_keyrouter_wl_key_send(Ecore_Event_Key *ev, E_Device *dev, Eina_Bool pressed, s
 
    if (!focused)
      {
-        _e_keyrouter_wl_key_send(ev, dev, state, e_comp_wl->kbd.resources, EINA_FALSE, client, surface);
+        _e_keyrouter_wl_key_send(ev, dev, state, e_comp_input_key->kbd.resources, EINA_FALSE, client, surface);
         return EINA_FALSE;
      }
 
@@ -147,10 +148,10 @@ e_keyrouter_wl_key_send(Ecore_Event_Key *ev, E_Device *dev, Eina_Bool pressed, s
              struct wl_resource *surface = e_comp_wl_client_surface_get(ec);
              if (surface)
                {
-                  if (e_comp_wl->kbd.focused)
+                  if (e_comp_input_key->kbd.focused)
                     {
                        wc = wl_resource_get_client(surface);
-                       _e_keyrouter_wl_key_send(ev, dev, state, e_comp_wl->kbd.focused, EINA_TRUE, wc, surface);
+                       _e_keyrouter_wl_key_send(ev, dev, state, e_comp_input_key->kbd.focused, EINA_TRUE, wc, surface);
                     }
                }