mirror of
https://gitlab.freedesktop.org/wayland/wayland.git
synced 2025-11-10 13:29:48 -05:00
compositor-x11: Handle keyboard focus correctly so we avoid stuck modifiers
This commit is contained in:
parent
ac5c5e7853
commit
3ba4858c4b
6 changed files with 80 additions and 3 deletions
|
|
@ -840,6 +840,28 @@ notify_pointer_focus(struct wl_input_device *device,
|
|||
wlsc_compositor_schedule_repaint(compositor);
|
||||
}
|
||||
|
||||
void
|
||||
notify_keyboard_focus(struct wl_input_device *device_base,
|
||||
uint32_t time, struct wlsc_output *output,
|
||||
struct wl_array *keys)
|
||||
{
|
||||
struct wlsc_input_device *device =
|
||||
(struct wlsc_input_device *) device_base;
|
||||
|
||||
if (output) {
|
||||
wl_array_copy(&device->input_device.keys, keys);
|
||||
wl_input_device_set_keyboard_focus(&device->input_device,
|
||||
device->saved_keyboard_focus,
|
||||
time);
|
||||
} else {
|
||||
device->saved_keyboard_focus =
|
||||
device->input_device.keyboard_focus;
|
||||
wl_input_device_set_keyboard_focus(&device->input_device,
|
||||
NULL, time);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
input_device_attach(struct wl_client *client,
|
||||
struct wl_input_device *device_base,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue