Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Stefan Agner
weston
Commits
86ec8e80
Commit
86ec8e80
authored
Jul 19, 2011
by
Kristian Høgsberg
Browse files
compositor: Use systemd seats for input devices as well
parent
8d51f141
Changes
3
Hide whitespace changes
Inline
Side-by-side
compositor/compositor-drm.c
View file @
86ec8e80
...
...
@@ -805,7 +805,7 @@ drm_compositor_create(struct wl_display *display,
return
NULL
;
}
evdev_input_add_devices
(
&
ec
->
base
,
ec
->
udev
);
evdev_input_add_devices
(
&
ec
->
base
,
ec
->
udev
,
seat
);
loop
=
wl_display_get_event_loop
(
ec
->
base
.
wl_display
);
ec
->
drm_source
=
...
...
compositor/compositor.h
View file @
86ec8e80
...
...
@@ -366,7 +366,8 @@ void
wlsc_switcher_init
(
struct
wlsc_compositor
*
compositor
);
void
evdev_input_add_devices
(
struct
wlsc_compositor
*
c
,
struct
udev
*
udev
);
evdev_input_add_devices
(
struct
wlsc_compositor
*
c
,
struct
udev
*
udev
,
const
char
*
seat
);
enum
{
TTY_ENTER_VT
,
...
...
compositor/evdev.c
View file @
86ec8e80
...
...
@@ -210,13 +210,17 @@ evdev_input_device_create(struct evdev_input *master,
return
device
;
}
static
const
char
default_seat
[]
=
"seat0"
;
void
evdev_input_add_devices
(
struct
wlsc_compositor
*
c
,
struct
udev
*
udev
)
evdev_input_add_devices
(
struct
wlsc_compositor
*
c
,
struct
udev
*
udev
,
const
char
*
seat
)
{
struct
evdev_input
*
input
;
struct
udev_enumerate
*
e
;
struct
udev_list_entry
*
entry
;
struct
udev_device
*
device
;
const
char
*
device_seat
;
const
char
*
path
;
input
=
malloc
(
sizeof
*
input
);
...
...
@@ -228,13 +232,22 @@ evdev_input_add_devices(struct wlsc_compositor *c, struct udev *udev)
e
=
udev_enumerate_new
(
udev
);
udev_enumerate_add_match_subsystem
(
e
,
"input"
);
udev_enumerate_add_match_property
(
e
,
"WAYLAND_SEAT"
,
"1"
);
udev_enumerate_scan_devices
(
e
);
udev_list_entry_foreach
(
entry
,
udev_enumerate_get_list_entry
(
e
))
{
path
=
udev_list_entry_get_name
(
entry
);
device
=
udev_device_new_from_syspath
(
udev
,
path
);
evdev_input_device_create
(
input
,
c
->
wl_display
,
udev_device_get_devnode
(
device
));
device_seat
=
udev_device_get_property_value
(
device
,
"ID_SEAT"
);
if
(
!
device_seat
)
device_seat
=
default_seat
;
if
(
strcmp
(
device_seat
,
seat
)
==
0
)
{
evdev_input_device_create
(
input
,
c
->
wl_display
,
udev_device_get_devnode
(
device
));
}
udev_device_unref
(
device
);
}
udev_enumerate_unref
(
e
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment