struct binding_keyboard_grab {
uint32_t key;
- struct wl_keyboard_grab grab;
+ struct weston_keyboard_grab grab;
};
static void
-binding_key(struct wl_keyboard_grab *grab,
+binding_key(struct weston_keyboard_grab *grab,
uint32_t time, uint32_t key, uint32_t state_w)
{
struct binding_keyboard_grab *b =
struct wl_display *display;
enum wl_keyboard_key_state state = state_w;
uint32_t serial;
- struct weston_keyboard *keyboard = (struct weston_keyboard *)grab->keyboard;
+ struct weston_keyboard *keyboard = grab->keyboard;
resource = grab->keyboard->focus_resource;
if (key == b->key) {
if (state == WL_KEYBOARD_KEY_STATE_RELEASED) {
- wl_keyboard_end_grab(grab->keyboard);
+ weston_keyboard_end_grab(grab->keyboard);
if (keyboard->input_method_resource)
- keyboard->keyboard.grab = &keyboard->input_method_grab;
+ keyboard->grab = &keyboard->input_method_grab;
free(b);
}
} else if (resource) {
}
static void
-binding_modifiers(struct wl_keyboard_grab *grab, uint32_t serial,
+binding_modifiers(struct weston_keyboard_grab *grab, uint32_t serial,
uint32_t mods_depressed, uint32_t mods_latched,
uint32_t mods_locked, uint32_t group)
{
mods_latched, mods_locked, group);
}
-static const struct wl_keyboard_grab_interface binding_grab = {
+static const struct weston_keyboard_grab_interface binding_grab = {
binding_key,
binding_modifiers,
};
grab = malloc(sizeof *grab);
grab->key = key;
grab->grab.interface = &binding_grab;
- wl_keyboard_start_grab(seat->keyboard, &grab->grab);
+ weston_keyboard_start_grab(seat->keyboard, &grab->grab);
}
WL_EXPORT void
update_xkb_state_from_core(struct x11_compositor *c, uint16_t x11_mask)
{
uint32_t mask = get_xkb_mod_mask(c, x11_mask);
- struct wl_keyboard *keyboard = &c->core_seat.keyboard.keyboard;
+ struct weston_keyboard *keyboard = &c->core_seat.keyboard;
xkb_state_update_mask(c->core_seat.xkb_state.state,
keyboard->modifiers.mods_depressed & mask,
wl_list_for_each(seat, &surface->compositor->seat_list, link) {
if (seat->seat.keyboard &&
seat->seat.keyboard->focus == &surface->surface)
- wl_keyboard_set_focus(seat->seat.keyboard, NULL);
+ weston_keyboard_set_focus(seat->seat.keyboard, NULL);
if (seat->seat.pointer &&
seat->seat.pointer->focus == &surface->surface)
wl_pointer_set_focus(seat->seat.pointer,
struct weston_compositor *compositor = seat->compositor;
if (seat->seat.keyboard) {
- wl_keyboard_set_focus(seat->seat.keyboard, &surface->surface);
+ weston_keyboard_set_focus(seat->seat.keyboard, &surface->surface);
wl_data_device_set_keyboard_focus(&seat->seat);
}
WL_EXPORT void
notify_modifiers(struct weston_seat *seat, uint32_t serial)
{
- struct wl_keyboard *keyboard = &seat->keyboard.keyboard;
- struct wl_keyboard_grab *grab = keyboard->grab;
+ struct weston_keyboard *keyboard = &seat->keyboard;
+ struct weston_keyboard_grab *grab = keyboard->grab;
uint32_t mods_depressed, mods_latched, mods_locked, group;
uint32_t mods_lookup;
enum weston_led leds = 0;
struct weston_compositor *compositor = seat->compositor;
struct weston_keyboard *keyboard = &seat->keyboard;
struct weston_surface *focus =
- (struct weston_surface *) keyboard->keyboard.focus;
- struct wl_keyboard_grab *grab = keyboard->keyboard.grab;
+ (struct weston_surface *) keyboard->focus;
+ struct weston_keyboard_grab *grab = keyboard->grab;
uint32_t serial = wl_display_next_serial(compositor->wl_display);
uint32_t *k, *end;
compositor->ping_handler(focus, serial);
weston_compositor_idle_inhibit(compositor);
- keyboard->keyboard.grab_key = key;
- keyboard->keyboard.grab_time = time;
+ keyboard->grab_key = key;
+ keyboard->grab_time = time;
} else {
weston_compositor_idle_release(compositor);
}
- end = keyboard->keyboard.keys.data + keyboard->keyboard.keys.size;
- for (k = keyboard->keyboard.keys.data; k < end; k++) {
+ end = keyboard->keys.data + keyboard->keys.size;
+ for (k = keyboard->keys.data; k < end; k++) {
if (*k == key) {
/* Ignore server-generated repeats. */
if (state == WL_KEYBOARD_KEY_STATE_PRESSED)
*k = *--end;
}
}
- keyboard->keyboard.keys.size = (void *) end - keyboard->keyboard.keys.data;
+ keyboard->keys.size = (void *) end - keyboard->keys.data;
if (state == WL_KEYBOARD_KEY_STATE_PRESSED) {
- k = wl_array_add(&keyboard->keyboard.keys, sizeof *k);
+ k = wl_array_add(&keyboard->keys, sizeof *k);
*k = key;
}
- if (grab == &keyboard->keyboard.default_grab ||
+ if (grab == &keyboard->default_grab ||
grab == &keyboard->input_method_grab) {
weston_compositor_run_key_binding(compositor, seat, time, key,
state);
- grab = keyboard->keyboard.grab;
+ grab = keyboard->grab;
}
grab->interface->key(grab, time, key, state);
enum weston_key_state_update update_state)
{
struct weston_compositor *compositor = seat->compositor;
- struct wl_keyboard *keyboard = seat->seat.keyboard;
+ struct weston_keyboard *keyboard = seat->seat.keyboard;
struct wl_surface *surface;
uint32_t *k, serial;
if (surface) {
wl_list_remove(&seat->saved_kbd_focus_listener.link);
- wl_keyboard_set_focus(keyboard, surface);
+ weston_keyboard_set_focus(keyboard, surface);
seat->saved_kbd_focus = NULL;
}
}
notify_keyboard_focus_out(struct weston_seat *seat)
{
struct weston_compositor *compositor = seat->compositor;
- struct wl_keyboard *keyboard = seat->seat.keyboard;
+ struct weston_keyboard *keyboard = seat->seat.keyboard;
uint32_t *k, serial;
serial = wl_display_next_serial(compositor->wl_display);
&seat->saved_kbd_focus_listener);
}
- wl_keyboard_set_focus(keyboard, NULL);
+ weston_keyboard_set_focus(keyboard, NULL);
/* FIXME: We really need keyboard grab cancel here to
* let the grab shut down properly. As it is we leak
* the grab data. */
- wl_keyboard_end_grab(keyboard);
+ weston_keyboard_end_grab(keyboard);
}
static void
if (seat->seat.keyboard->focus &&
seat->seat.keyboard->focus->resource.client == client) {
- wl_keyboard_set_focus(seat->seat.keyboard,
- seat->seat.keyboard->focus);
+ weston_keyboard_set_focus(seat->seat.keyboard,
+ seat->seat.keyboard->focus);
wl_data_device_set_keyboard_focus(&seat->seat);
}
}
seat->xkb_state.leds = 0;
- wl_keyboard_init(&seat->keyboard.keyboard);
- wl_seat_set_keyboard(&seat->seat, &seat->keyboard.keyboard);
+ weston_keyboard_init(&seat->keyboard);
+ wl_seat_set_keyboard(&seat->seat, &seat->keyboard);
seat->has_keyboard = 1;
wl_fixed_t x, y;
};
-struct wl_keyboard_grab;
-struct wl_keyboard_grab_interface {
- void (*key)(struct wl_keyboard_grab *grab, uint32_t time,
+struct weston_keyboard_grab;
+struct weston_keyboard_grab_interface {
+ void (*key)(struct weston_keyboard_grab *grab, uint32_t time,
uint32_t key, uint32_t state);
- void (*modifiers)(struct wl_keyboard_grab *grab, uint32_t serial,
+ void (*modifiers)(struct weston_keyboard_grab *grab, uint32_t serial,
uint32_t mods_depressed, uint32_t mods_latched,
uint32_t mods_locked, uint32_t group);
};
-struct wl_keyboard_grab {
- const struct wl_keyboard_grab_interface *interface;
- struct wl_keyboard *keyboard;
+struct weston_keyboard_grab {
+ const struct weston_keyboard_grab_interface *interface;
+ struct weston_keyboard *keyboard;
struct wl_surface *focus;
uint32_t key;
};
uint32_t button_count;
};
-struct wl_keyboard {
- struct wl_seat *seat;
-
- struct wl_list resource_list;
- struct wl_surface *focus;
- struct wl_resource *focus_resource;
- struct wl_listener focus_listener;
- uint32_t focus_serial;
- struct wl_signal focus_signal;
-
- struct wl_keyboard_grab *grab;
- struct wl_keyboard_grab default_grab;
- uint32_t grab_key;
- uint32_t grab_serial;
- uint32_t grab_time;
-
- struct wl_array keys;
-
- struct {
- uint32_t mods_depressed;
- uint32_t mods_latched;
- uint32_t mods_locked;
- uint32_t group;
- } modifiers;
-};
struct wl_touch {
struct wl_seat *seat;
struct wl_signal destroy_signal;
struct wl_pointer *pointer;
- struct wl_keyboard *keyboard;
+ struct weston_keyboard *keyboard;
struct wl_touch *touch;
uint32_t selection_serial;
void
wl_seat_set_pointer(struct wl_seat *seat, struct wl_pointer *pointer);
void
-wl_seat_set_keyboard(struct wl_seat *seat, struct wl_keyboard *keyboard);
+wl_seat_set_keyboard(struct wl_seat *seat, struct weston_keyboard *keyboard);
void
wl_seat_set_touch(struct wl_seat *seat, struct wl_touch *touch);
wl_pointer_set_current(struct wl_pointer *pointer, struct wl_surface *surface);
void
-wl_keyboard_init(struct wl_keyboard *keyboard);
+weston_keyboard_init(struct weston_keyboard *keyboard);
void
-wl_keyboard_release(struct wl_keyboard *keyboard);
+weston_keyboard_release(struct weston_keyboard *keyboard);
void
-wl_keyboard_set_focus(struct wl_keyboard *keyboard, struct wl_surface *surface);
+weston_keyboard_set_focus(struct weston_keyboard *keyboard,
+ struct wl_surface *surface);
void
-wl_keyboard_start_grab(struct wl_keyboard *device,
- struct wl_keyboard_grab *grab);
+weston_keyboard_start_grab(struct weston_keyboard *device,
+ struct weston_keyboard_grab *grab);
void
-wl_keyboard_end_grab(struct wl_keyboard *keyboard);
+weston_keyboard_end_grab(struct weston_keyboard *keyboard);
void
wl_touch_init(struct wl_touch *touch);
};
struct weston_keyboard {
- struct wl_keyboard keyboard;
+ struct wl_seat *seat;
+
+ struct wl_list resource_list;
+ struct wl_surface *focus;
+ struct wl_resource *focus_resource;
+ struct wl_listener focus_listener;
+ uint32_t focus_serial;
+ struct wl_signal focus_signal;
+
+ struct weston_keyboard_grab *grab;
+ struct weston_keyboard_grab default_grab;
+ uint32_t grab_key;
+ uint32_t grab_serial;
+ uint32_t grab_time;
+
+ struct wl_array keys;
+
+ struct {
+ uint32_t mods_depressed;
+ uint32_t mods_latched;
+ uint32_t mods_locked;
+ uint32_t group;
+ } modifiers;
- struct wl_keyboard_grab input_method_grab;
+ struct weston_keyboard_grab input_method_grab;
struct wl_resource *input_method_resource;
};
static void
lose_keyboard_focus(struct wl_listener *listener, void *data)
{
- struct wl_keyboard *keyboard =
- container_of(listener, struct wl_keyboard, focus_listener);
+ struct weston_keyboard *keyboard =
+ container_of(listener, struct weston_keyboard, focus_listener);
keyboard->focus_resource = NULL;
}
};
static void
-default_grab_key(struct wl_keyboard_grab *grab,
+default_grab_key(struct weston_keyboard_grab *grab,
uint32_t time, uint32_t key, uint32_t state)
{
- struct wl_keyboard *keyboard = grab->keyboard;
+ struct weston_keyboard *keyboard = grab->keyboard;
struct wl_resource *resource;
struct wl_display *display;
uint32_t serial;
}
static void
-default_grab_modifiers(struct wl_keyboard_grab *grab, uint32_t serial,
+default_grab_modifiers(struct weston_keyboard_grab *grab, uint32_t serial,
uint32_t mods_depressed, uint32_t mods_latched,
uint32_t mods_locked, uint32_t group)
{
- struct wl_keyboard *keyboard = grab->keyboard;
+ struct weston_keyboard *keyboard = grab->keyboard;
struct wl_pointer *pointer = keyboard->seat->pointer;
struct wl_resource *resource, *pr;
}
}
-static const struct wl_keyboard_grab_interface
+static const struct weston_keyboard_grab_interface
default_keyboard_grab_interface = {
default_grab_key,
default_grab_modifiers,
}
WL_EXPORT void
-wl_keyboard_init(struct wl_keyboard *keyboard)
+weston_keyboard_init(struct weston_keyboard *keyboard)
{
memset(keyboard, 0, sizeof *keyboard);
wl_list_init(&keyboard->resource_list);
}
WL_EXPORT void
-wl_keyboard_release(struct wl_keyboard *keyboard)
+weston_keyboard_release(struct weston_keyboard *keyboard)
{
/* XXX: What about keyboard->resource_list? */
if (keyboard->focus_resource)
if (seat->pointer)
wl_pointer_release(seat->pointer);
if (seat->keyboard)
- wl_keyboard_release(seat->keyboard);
+ weston_keyboard_release(seat->keyboard);
if (seat->touch)
wl_touch_release(seat->touch);
}
}
WL_EXPORT void
-wl_seat_set_keyboard(struct wl_seat *seat, struct wl_keyboard *keyboard)
+wl_seat_set_keyboard(struct wl_seat *seat, struct weston_keyboard *keyboard)
{
if (keyboard && (seat->keyboard || keyboard->seat))
return; /* XXX: error? */
wl_pointer_set_focus(struct wl_pointer *pointer, struct wl_surface *surface,
wl_fixed_t sx, wl_fixed_t sy)
{
- struct wl_keyboard *kbd = pointer->seat->keyboard;
+ struct weston_keyboard *kbd = pointer->seat->keyboard;
struct wl_resource *resource, *kr;
struct wl_display *display;
uint32_t serial;
}
WL_EXPORT void
-wl_keyboard_set_focus(struct wl_keyboard *keyboard, struct wl_surface *surface)
+weston_keyboard_set_focus(struct weston_keyboard *keyboard,
+ struct wl_surface *surface)
{
struct wl_resource *resource;
struct wl_display *display;
}
WL_EXPORT void
-wl_keyboard_start_grab(struct wl_keyboard *keyboard,
- struct wl_keyboard_grab *grab)
+weston_keyboard_start_grab(struct weston_keyboard *keyboard,
+ struct weston_keyboard_grab *grab)
{
keyboard->grab = grab;
grab->keyboard = keyboard;
}
WL_EXPORT void
-wl_keyboard_end_grab(struct wl_keyboard *keyboard)
+weston_keyboard_end_grab(struct weston_keyboard *keyboard)
{
keyboard->grab = &keyboard->default_grab;
}
surface = state->keyboard_focus ?
&state->keyboard_focus->surface : NULL;
- wl_keyboard_set_focus(state->seat->seat.keyboard, surface);
+ weston_keyboard_set_focus(state->seat->seat.keyboard, surface);
}
}
drop_focus_state(shell, from, surface);
wl_list_for_each(seat, &shell->compositor->seat_list, link)
if (seat->has_keyboard &&
- seat->keyboard.keyboard.focus == &surface->surface)
- wl_keyboard_set_focus(&seat->keyboard.keyboard, NULL);
+ seat->keyboard.focus == &surface->surface)
+ weston_keyboard_set_focus(&seat->keyboard, NULL);
weston_surface_damage_below(surface);
}
struct desktop_shell *shell;
struct weston_surface *current;
struct wl_listener listener;
- struct wl_keyboard_grab grab;
+ struct weston_keyboard_grab grab;
};
static void
switcher_destroy(struct switcher *switcher)
{
struct weston_surface *surface;
- struct wl_keyboard *keyboard = switcher->grab.keyboard;
- struct weston_keyboard *weston_keyboard = (struct weston_keyboard *)keyboard;
+ struct weston_keyboard *keyboard = switcher->grab.keyboard;
struct workspace *ws = get_current_workspace(switcher->shell);
wl_list_for_each(surface, &ws->layer.surface_list, layer_link) {
activate(switcher->shell, switcher->current,
(struct weston_seat *) keyboard->seat);
wl_list_remove(&switcher->listener.link);
- wl_keyboard_end_grab(keyboard);
- if (weston_keyboard->input_method_resource)
- keyboard->grab = &weston_keyboard->input_method_grab;
+ weston_keyboard_end_grab(keyboard);
+ if (keyboard->input_method_resource)
+ keyboard->grab = &keyboard->input_method_grab;
free(switcher);
}
static void
-switcher_key(struct wl_keyboard_grab *grab,
+switcher_key(struct weston_keyboard_grab *grab,
uint32_t time, uint32_t key, uint32_t state_w)
{
struct switcher *switcher = container_of(grab, struct switcher, grab);
}
static void
-switcher_modifier(struct wl_keyboard_grab *grab, uint32_t serial,
+switcher_modifier(struct weston_keyboard_grab *grab, uint32_t serial,
uint32_t mods_depressed, uint32_t mods_latched,
uint32_t mods_locked, uint32_t group)
{
switcher_destroy(switcher);
}
-static const struct wl_keyboard_grab_interface switcher_grab = {
+static const struct weston_keyboard_grab_interface switcher_grab = {
switcher_key,
switcher_modifier,
};
lower_fullscreen_layer(switcher->shell);
switcher->grab.interface = &switcher_grab;
- wl_keyboard_start_grab(seat->keyboard, &switcher->grab);
- wl_keyboard_set_focus(seat->keyboard, NULL);
+ weston_keyboard_start_grab(seat->keyboard, &switcher->grab);
+ weston_keyboard_set_focus(seat->keyboard, NULL);
switcher_next(switcher);
}
}
struct debug_binding_grab {
- struct wl_keyboard_grab grab;
+ struct weston_keyboard_grab grab;
struct weston_seat *seat;
uint32_t key[2];
int key_released[2];
};
static void
-debug_binding_key(struct wl_keyboard_grab *grab, uint32_t time,
+debug_binding_key(struct weston_keyboard_grab *grab, uint32_t time,
uint32_t key, uint32_t state)
{
struct debug_binding_grab *db = (struct debug_binding_grab *) grab;
}
if (terminate) {
- struct weston_keyboard *weston_keyboard = (struct weston_keyboard *) grab->keyboard;
- wl_keyboard_end_grab(grab->keyboard);
- if (weston_keyboard->input_method_resource)
- grab->keyboard->grab = &weston_keyboard->input_method_grab;
+ weston_keyboard_end_grab(grab->keyboard);
+ if (grab->keyboard->input_method_resource)
+ grab->keyboard->grab = &grab->keyboard->input_method_grab;
free(db);
}
}
static void
-debug_binding_modifiers(struct wl_keyboard_grab *grab, uint32_t serial,
+debug_binding_modifiers(struct weston_keyboard_grab *grab, uint32_t serial,
uint32_t mods_depressed, uint32_t mods_latched,
uint32_t mods_locked, uint32_t group)
{
mods_latched, mods_locked, group);
}
-struct wl_keyboard_grab_interface debug_binding_keyboard_grab = {
+struct weston_keyboard_grab_interface debug_binding_keyboard_grab = {
debug_binding_key,
debug_binding_modifiers
};
grab->seat = (struct weston_seat *) seat;
grab->key[0] = key;
grab->grab.interface = &debug_binding_keyboard_grab;
- wl_keyboard_start_grab(seat->keyboard, &grab->grab);
+ weston_keyboard_start_grab(seat->keyboard, &grab->grab);
}
static void
}
static void
-input_method_context_grab_key(struct wl_keyboard_grab *grab,
+input_method_context_grab_key(struct weston_keyboard_grab *grab,
uint32_t time, uint32_t key, uint32_t state_w)
{
- struct weston_keyboard *keyboard = (struct weston_keyboard *)grab->keyboard;
+ struct weston_keyboard *keyboard = grab->keyboard;
struct wl_display *display;
uint32_t serial;
}
static void
-input_method_context_grab_modifier(struct wl_keyboard_grab *grab, uint32_t serial,
+input_method_context_grab_modifier(struct weston_keyboard_grab *grab, uint32_t serial,
uint32_t mods_depressed, uint32_t mods_latched,
uint32_t mods_locked, uint32_t group)
{
- struct weston_keyboard *keyboard = (struct weston_keyboard *)grab->keyboard;
+ struct weston_keyboard *keyboard = grab->keyboard;
if (!keyboard->input_method_resource)
return;
mods_locked, group);
}
-static const struct wl_keyboard_grab_interface input_method_context_grab = {
+static const struct weston_keyboard_grab_interface input_method_context_grab = {
input_method_context_grab_key,
input_method_context_grab_modifier,
};
seat->xkb_info.keymap_fd,
seat->xkb_info.keymap_size);
- if (keyboard->keyboard.grab != &keyboard->keyboard.default_grab) {
- wl_keyboard_end_grab(&keyboard->keyboard);
+ if (keyboard->grab != &keyboard->default_grab) {
+ weston_keyboard_end_grab(keyboard);
}
- wl_keyboard_start_grab(&keyboard->keyboard, &keyboard->input_method_grab);
+ weston_keyboard_start_grab(keyboard, &keyboard->input_method_grab);
keyboard->input_method_resource = cr;
}
{
struct input_method_context *context = resource->data;
struct weston_seat *seat = context->input_method->seat;
- struct wl_keyboard *keyboard = seat->seat.keyboard;
- struct wl_keyboard_grab *default_grab = &keyboard->default_grab;
+ struct weston_keyboard *keyboard = seat->seat.keyboard;
+ struct weston_keyboard_grab *default_grab = &keyboard->default_grab;
default_grab->interface->key(default_grab, time, key, state_w);
}
struct input_method_context *context = resource->data;
struct weston_seat *seat = context->input_method->seat;
- struct wl_keyboard *keyboard = seat->seat.keyboard;
- struct wl_keyboard_grab *default_grab = &keyboard->default_grab;
+ struct weston_keyboard *keyboard = seat->seat.keyboard;
+ struct weston_keyboard_grab *default_grab = &keyboard->default_grab;
default_grab->interface->modifiers(default_grab,
serial, mods_depressed,
static void
input_method_context_end_keyboard_grab(struct input_method_context *context)
{
- struct wl_keyboard_grab *grab = &context->input_method->seat->keyboard.input_method_grab;
- struct weston_keyboard *keyboard = (struct weston_keyboard *)grab->keyboard;
+ struct weston_keyboard_grab *grab = &context->input_method->seat->keyboard.input_method_grab;
+ struct weston_keyboard *keyboard = grab->keyboard;
if (!grab->keyboard)
return;
if (grab->keyboard->grab == grab)
- wl_keyboard_end_grab(grab->keyboard);
+ weston_keyboard_end_grab(grab->keyboard);
keyboard->input_method_resource = NULL;
}
static void
handle_keyboard_focus(struct wl_listener *listener, void *data)
{
- struct wl_keyboard *keyboard = data;
+ struct weston_keyboard *keyboard = data;
struct input_method *input_method =
container_of(listener, struct input_method, keyboard_focus_listener);
struct wl_surface *surface = keyboard->focus;
if (surface) {
weston_surface_activate(surface, seat);
- notify_keyboard_focus_in(seat, &seat->keyboard.keyboard.keys,
+ notify_keyboard_focus_in(seat, &seat->keyboard.keys,
STATE_UPDATE_AUTOMATIC);
}
else {