udev-seat: Make udev_input own its own udev object reference
No functional changes; API simplification in preparation for multiple input backends. Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
This commit is contained in:
committed by
Kristian Høgsberg
parent
58e158658f
commit
0feb32e2f0
@@ -2435,7 +2435,7 @@ session_notify(struct wl_listener *listener, void *data)
|
|||||||
compositor->state = ec->prev_state;
|
compositor->state = ec->prev_state;
|
||||||
drm_compositor_set_modes(ec);
|
drm_compositor_set_modes(ec);
|
||||||
weston_compositor_damage_all(compositor);
|
weston_compositor_damage_all(compositor);
|
||||||
udev_input_enable(&ec->input, ec->udev);
|
udev_input_enable(&ec->input);
|
||||||
} else {
|
} else {
|
||||||
weston_log("deactivating session\n");
|
weston_log("deactivating session\n");
|
||||||
udev_input_disable(&ec->input);
|
udev_input_disable(&ec->input);
|
||||||
|
|||||||
@@ -824,7 +824,7 @@ session_notify(struct wl_listener *listener, void *data)
|
|||||||
|
|
||||||
weston_compositor_damage_all(&compositor->base);
|
weston_compositor_damage_all(&compositor->base);
|
||||||
|
|
||||||
udev_input_enable(&compositor->input, compositor->udev);
|
udev_input_enable(&compositor->input);
|
||||||
} else {
|
} else {
|
||||||
weston_log("leaving VT\n");
|
weston_log("leaving VT\n");
|
||||||
udev_input_disable(&compositor->input);
|
udev_input_disable(&compositor->input);
|
||||||
|
|||||||
@@ -441,7 +441,7 @@ session_notify(struct wl_listener *listener, void *data)
|
|||||||
weston_log("activating session\n");
|
weston_log("activating session\n");
|
||||||
compositor->base.state = compositor->prev_state;
|
compositor->base.state = compositor->prev_state;
|
||||||
weston_compositor_damage_all(&compositor->base);
|
weston_compositor_damage_all(&compositor->base);
|
||||||
udev_input_enable(&compositor->input, compositor->udev);
|
udev_input_enable(&compositor->input);
|
||||||
} else {
|
} else {
|
||||||
weston_log("deactivating session\n");
|
weston_log("deactivating session\n");
|
||||||
udev_input_disable(&compositor->input);
|
udev_input_disable(&compositor->input);
|
||||||
|
|||||||
+7
-4
@@ -237,13 +237,13 @@ out:
|
|||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
udev_input_enable(struct udev_input *input, struct udev *udev)
|
udev_input_enable(struct udev_input *input)
|
||||||
{
|
{
|
||||||
struct wl_event_loop *loop;
|
struct wl_event_loop *loop;
|
||||||
struct weston_compositor *c = input->compositor;
|
struct weston_compositor *c = input->compositor;
|
||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
input->udev_monitor = udev_monitor_new_from_netlink(udev, "udev");
|
input->udev_monitor = udev_monitor_new_from_netlink(input->udev, "udev");
|
||||||
if (!input->udev_monitor) {
|
if (!input->udev_monitor) {
|
||||||
weston_log("udev: failed to create the udev monitor\n");
|
weston_log("udev: failed to create the udev monitor\n");
|
||||||
return -1;
|
return -1;
|
||||||
@@ -268,7 +268,7 @@ udev_input_enable(struct udev_input *input, struct udev *udev)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (udev_input_add_devices(input, udev) < 0)
|
if (udev_input_add_devices(input, input->udev) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
input->enabled = 1;
|
input->enabled = 1;
|
||||||
@@ -316,7 +316,9 @@ udev_input_init(struct udev_input *input, struct weston_compositor *c, struct ud
|
|||||||
memset(input, 0, sizeof *input);
|
memset(input, 0, sizeof *input);
|
||||||
input->seat_id = strdup(seat_id);
|
input->seat_id = strdup(seat_id);
|
||||||
input->compositor = c;
|
input->compositor = c;
|
||||||
if (udev_input_enable(input, udev) < 0)
|
input->udev = udev;
|
||||||
|
input->udev = udev_ref(udev);
|
||||||
|
if (udev_input_enable(input) < 0)
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -333,6 +335,7 @@ udev_input_destroy(struct udev_input *input)
|
|||||||
udev_input_disable(input);
|
udev_input_disable(input);
|
||||||
wl_list_for_each_safe(seat, next, &input->compositor->seat_list, base.link)
|
wl_list_for_each_safe(seat, next, &input->compositor->seat_list, base.link)
|
||||||
udev_seat_destroy(seat);
|
udev_seat_destroy(seat);
|
||||||
|
udev_unref(input->udev);
|
||||||
free(input->seat_id);
|
free(input->seat_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -36,6 +36,7 @@ struct udev_seat {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct udev_input {
|
struct udev_input {
|
||||||
|
struct udev *udev;
|
||||||
struct udev_monitor *udev_monitor;
|
struct udev_monitor *udev_monitor;
|
||||||
struct wl_event_source *udev_monitor_source;
|
struct wl_event_source *udev_monitor_source;
|
||||||
char *seat_id;
|
char *seat_id;
|
||||||
@@ -43,7 +44,7 @@ struct udev_input {
|
|||||||
int enabled;
|
int enabled;
|
||||||
};
|
};
|
||||||
|
|
||||||
int udev_input_enable(struct udev_input *input, struct udev *udev);
|
int udev_input_enable(struct udev_input *input);
|
||||||
void udev_input_disable(struct udev_input *input);
|
void udev_input_disable(struct udev_input *input);
|
||||||
int udev_input_init(struct udev_input *input,
|
int udev_input_init(struct udev_input *input,
|
||||||
struct weston_compositor *c,
|
struct weston_compositor *c,
|
||||||
|
|||||||
Reference in New Issue
Block a user