zmike pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=12854eac34d8d1decc3c61867d242887a288ac6e
commit 12854eac34d8d1decc3c61867d242887a288ac6e Author: Mike Blumenkrantz <zm...@samsung.com> Date: Thu Mar 12 12:15:50 2020 -0400 efl-wl: move keymap functions to eo Summary: more 1:1 changes Depends on D11467 Reviewers: segfaultxavi, bu5hm4n Reviewed By: bu5hm4n Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D11468 --- src/lib/efl_wl/Efl_Wl.h | 6 ++++-- src/lib/efl_wl/efl_wl.c | 20 +++++++------------- src/lib/efl_wl/efl_wl.eo | 17 +++++++++++++++++ 3 files changed, 28 insertions(+), 15 deletions(-) diff --git a/src/lib/efl_wl/Efl_Wl.h b/src/lib/efl_wl/Efl_Wl.h index 5676d892ae..71b3c2c190 100644 --- a/src/lib/efl_wl/Efl_Wl.h +++ b/src/lib/efl_wl/Efl_Wl.h @@ -26,8 +26,10 @@ typedef struct Efl_Wl_Wl_Surface Efl_Wl_Wl_Surface; typedef struct Efl_Wl_Wl_Global Efl_Wl_Wl_Global; typedef struct Efl_Wl_Wl_Interface Efl_Wl_Wl_Interface; +typedef struct Efl_Wl_Wl_Array Efl_Wl_Wl_Array; typedef void * Efl_Wl_Wl_Interface_Data; typedef void * Efl_Wl_Wl_Interface_Bind_Cb; +typedef struct Efl_Wl_Xkb_State Efl_Wl_Xkb_State; #include <efl_wl.eo.h> #include <efl_wl_surface.eo.h> @@ -210,7 +212,7 @@ EAPI Evas_Object *efl_wl_extracted_surface_object_find(void *surface_resource); * @since 1.21 */ EAPI Evas_Object *efl_wl_extracted_surface_extracted_parent_get(Evas_Object *surface); -#endif + /** * Set external xkbcommon resources to be used read-only by the compositor object * @@ -236,7 +238,7 @@ EAPI void efl_wl_seat_keymap_set(Evas_Object *obj, Eo *seat, void *state, char * * @since 1.21 */ EAPI void efl_wl_seat_key_repeat_set(Evas_Object *obj, Eo *seat, int repeat_rate, int repeat_delay); - +#endif #undef EAPI #define EAPI #undef EAPI_WEAK diff --git a/src/lib/efl_wl/efl_wl.c b/src/lib/efl_wl/efl_wl.c index c56ec323f7..0aa1d23096 100644 --- a/src/lib/efl_wl/efl_wl.c +++ b/src/lib/efl_wl/efl_wl.c @@ -210,7 +210,7 @@ typedef struct Comp_Seat struct xkb_context *context; struct xkb_keymap *keymap; struct xkb_state *state; - char *keymap_str; + const char *keymap_str; int keymap_str_size; int repeat_rate; int repeat_delay; @@ -5782,14 +5782,11 @@ _efl_wl_surface_parent_surface_get(const Eo *surface, Comp_Surface *cs) return NULL; } -void -efl_wl_seat_keymap_set(Eo *obj, Eo *seat, void *state, char *str, void *key_array) +static EOLIAN void +_efl_wl_seat_keymap_set(Eo *obj, Comp *c, Eo *seat, Efl_Wl_Xkb_State *state, const char *str, Efl_Wl_Wl_Array *key_array) { - Comp *c; Comp_Seat *s; - if (!eina_streq(evas_object_type_get(obj), "comp")) abort(); - c = efl_data_scope_get(obj, MY_CLASS); EINA_INLIST_FOREACH(c->seats, s) { if (!seat) efl_wl_seat_keymap_set(obj, s->dev, state, str, key_array); @@ -5799,8 +5796,8 @@ efl_wl_seat_keymap_set(Eo *obj, Eo *seat, void *state, char *str, void *key_arra EINA_SAFETY_ON_NULL_RETURN(s); seat_kbd_destroy(s); s->kbd.external = 1; - s->kbd.keys_external = key_array; - s->kbd.state = state; + s->kbd.keys_external = (void*)key_array; + s->kbd.state = (void*)state; s->kbd.keymap_str = str; if (str) s->kbd.keymap_str_size = strlen(str) + 1; @@ -5812,14 +5809,11 @@ efl_wl_seat_keymap_set(Eo *obj, Eo *seat, void *state, char *str, void *key_arra seat_kbd_external_init(s); } -void -efl_wl_seat_key_repeat_set(Eo *obj, Eo *seat, int repeat_rate, int repeat_delay) +static EOLIAN void +_efl_wl_seat_key_repeat_set(Eo *obj, Comp *c, Eo *seat, int repeat_rate, int repeat_delay) { - Comp *c; Comp_Seat *s; - if (!eina_streq(evas_object_type_get(obj), "comp")) abort(); - c = efl_data_scope_get(obj, MY_CLASS); EINA_INLIST_FOREACH(c->seats, s) { if (!seat) efl_wl_seat_key_repeat_set(obj, s->dev, repeat_rate, repeat_delay); diff --git a/src/lib/efl_wl/efl_wl.eo b/src/lib/efl_wl/efl_wl.eo index ffd2e9d5c7..20663624cb 100644 --- a/src/lib/efl_wl/efl_wl.eo +++ b/src/lib/efl_wl/efl_wl.eo @@ -7,6 +7,8 @@ struct @beta @extern Efl.Wl_Wl_Global; [[ struct wl_global. @since 1.24 ]] struct @beta @extern Efl.Wl_Wl_Interface; [[ A libwayland callback interface struct. @since 1.24 ]] struct @beta @extern Efl.Wl_Wl_Interface_Data; [[ A data pointer to send with the bind callback. @since 1.24 ]] struct @beta @extern Efl.Wl_Wl_Interface_Bind_Cb; [[ A callback with the type (*void)(struct wl_client *client, void *data, uint32_t version, uint32_t id). @since 1.24 ]] +struct @beta @extern Efl.Wl_Xkb_State; [[ struct xkb_state. @since 1.24 ]] +struct @beta @extern Efl.Wl_Wl_Array; [[ struct wl_array. @since 1.24 ]] enum @beta Efl.Wl.Rotation @@ -82,6 +84,21 @@ class @beta Efl.Wl extends Efl.Canvas.Group } return: Efl.Wl_Wl_Global @by_ref; } + seat_keymap_set { + params { + seat: Efl.Input.Device; + state: Efl.Wl_Xkb_State @by_ref; + keymap_str: string; + key_array: Efl.Wl_Wl_Array @by_ref; + } + } + seat_key_repeat_set { + params { + seat: Efl.Input.Device; + repeat_rate: int; + repeat_delay: int; + } + } } implements { Efl.Object.constructor; --