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) {
}
}
+ 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);
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,
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);