mirror of
https://gitlab.freedesktop.org/wayland/weston.git
synced 2026-05-05 04:08:13 +02:00
drm: Add vt switch keybindings
This commit is contained in:
parent
a00d60f6ac
commit
5d1c0c58ad
3 changed files with 26 additions and 0 deletions
|
|
@ -29,6 +29,7 @@
|
|||
#include <string.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <linux/input.h>
|
||||
|
||||
#include <xf86drm.h>
|
||||
#include <xf86drmMode.h>
|
||||
|
|
@ -1542,6 +1543,16 @@ vt_func(struct weston_compositor *compositor, int event)
|
|||
};
|
||||
}
|
||||
|
||||
static void
|
||||
switch_vt_binding(struct wl_input_device *device, uint32_t time,
|
||||
uint32_t key, uint32_t button, uint32_t axis, int32_t state, void *data)
|
||||
{
|
||||
struct drm_compositor *ec = data;
|
||||
|
||||
if (state)
|
||||
tty_activate_vt(ec->tty, key - KEY_F1 + 1);
|
||||
}
|
||||
|
||||
static const char default_seat[] = "seat0";
|
||||
|
||||
static struct weston_compositor *
|
||||
|
|
@ -1554,6 +1565,7 @@ drm_compositor_create(struct wl_display *display,
|
|||
struct udev_device *device, *drm_device;
|
||||
const char *path, *device_seat;
|
||||
struct wl_event_loop *loop;
|
||||
uint32_t key;
|
||||
|
||||
ec = malloc(sizeof *ec);
|
||||
if (ec == NULL)
|
||||
|
|
@ -1614,6 +1626,11 @@ drm_compositor_create(struct wl_display *display,
|
|||
if (weston_compositor_init(&ec->base, display) < 0)
|
||||
return NULL;
|
||||
|
||||
for (key = KEY_F1; key < KEY_F9; key++)
|
||||
weston_compositor_add_binding(&ec->base, key, 0, 0,
|
||||
MODIFIER_CTRL | MODIFIER_ALT,
|
||||
switch_vt_binding, ec);
|
||||
|
||||
wl_list_init(&ec->sprite_list);
|
||||
create_sprites(ec);
|
||||
|
||||
|
|
|
|||
|
|
@ -518,6 +518,9 @@ tty_create(struct weston_compositor *compositor,
|
|||
void
|
||||
tty_destroy(struct tty *tty);
|
||||
|
||||
int
|
||||
tty_activate_vt(struct tty *tty, int vt);
|
||||
|
||||
struct screenshooter *
|
||||
screenshooter_create(struct weston_compositor *ec);
|
||||
|
||||
|
|
|
|||
|
|
@ -104,6 +104,12 @@ try_open_vt(struct tty *tty)
|
|||
return fd;
|
||||
}
|
||||
|
||||
int
|
||||
tty_activate_vt(struct tty *tty, int vt)
|
||||
{
|
||||
return ioctl(tty->fd, VT_ACTIVATE, vt);
|
||||
}
|
||||
|
||||
struct tty *
|
||||
tty_create(struct weston_compositor *compositor, tty_vt_func_t vt_func,
|
||||
int tty_nr)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue