compositor: Make click to activate behavior a binding
This commit is contained in:
parent
42e40ae6dd
commit
5a5f0077be
@ -1286,14 +1286,6 @@ notify_button(struct wl_input_device *device,
|
||||
else
|
||||
wlsc_compositor_idle_release(compositor);
|
||||
|
||||
if (state && surface && device->grab == NULL) {
|
||||
compositor->shell->activate(compositor->shell,
|
||||
surface, wd, time);
|
||||
wl_input_device_start_grab(device,
|
||||
&device->implicit_grab,
|
||||
button, time);
|
||||
}
|
||||
|
||||
wl_list_for_each(b, &compositor->binding_list, link) {
|
||||
if (b->button == button &&
|
||||
b->modifier == wd->modifier_state && state) {
|
||||
@ -1303,6 +1295,12 @@ notify_button(struct wl_input_device *device,
|
||||
}
|
||||
}
|
||||
|
||||
if (state && surface && device->grab == NULL) {
|
||||
wl_input_device_start_grab(device,
|
||||
&device->implicit_grab,
|
||||
button, time);
|
||||
}
|
||||
|
||||
if (device->grab)
|
||||
device->grab->interface->button(device->grab, time,
|
||||
button, state);
|
||||
@ -1326,6 +1324,21 @@ terminate_binding(struct wl_input_device *device, uint32_t time,
|
||||
wl_display_terminate(compositor->wl_display);
|
||||
}
|
||||
|
||||
static void
|
||||
click_to_activate_binding(struct wl_input_device *device,
|
||||
uint32_t time, uint32_t key,
|
||||
uint32_t button, uint32_t state, void *data)
|
||||
{
|
||||
struct wlsc_input_device *wd = (struct wlsc_input_device *) device;
|
||||
struct wlsc_compositor *compositor = data;
|
||||
struct wlsc_surface *focus;
|
||||
|
||||
focus = (struct wlsc_surface *) device->pointer_focus;
|
||||
if (state && focus && device->grab == NULL)
|
||||
compositor->shell->activate(compositor->shell,
|
||||
focus, wd, time);
|
||||
}
|
||||
|
||||
WL_EXPORT struct wlsc_binding *
|
||||
wlsc_compositor_add_binding(struct wlsc_compositor *compositor,
|
||||
uint32_t key, uint32_t button, uint32_t modifier,
|
||||
@ -1906,6 +1919,9 @@ wlsc_compositor_init(struct wlsc_compositor *ec, struct wl_display *display)
|
||||
MODIFIER_CTRL | MODIFIER_ALT,
|
||||
terminate_binding, ec);
|
||||
|
||||
wlsc_compositor_add_binding(ec, 0, BTN_LEFT, 0,
|
||||
click_to_activate_binding, ec);
|
||||
|
||||
screenshooter_create(ec);
|
||||
|
||||
wlsc_data_device_manager_init(ec);
|
||||
|
Loading…
Reference in New Issue
Block a user