desktop-shell: Add support for touch unlock

Add support for unlocking on touch up using the
green button on the unlock dialog

Signed-off-by: Brian J Lovin <brian.j.lovin@intel.com>
This commit is contained in:
Brian J Lovin 2013-08-26 15:58:22 -07:00 committed by Kristian Høgsberg
parent a985da48a7
commit c4df4082c2
1 changed files with 29 additions and 0 deletions

View File

@ -832,6 +832,31 @@ unlock_dialog_button_handler(struct widget *widget,
}
}
static void
unlock_dialog_touch_down_handler(struct widget *widget, struct input *input,
uint32_t serial, uint32_t time, int32_t id,
float x, float y, void *data)
{
struct unlock_dialog *dialog = data;
dialog->button_focused = 1;
widget_schedule_redraw(widget);
}
static void
unlock_dialog_touch_up_handler(struct widget *widget, struct input *input,
uint32_t serial, uint32_t time, int32_t id,
void *data)
{
struct unlock_dialog *dialog = data;
struct desktop *desktop = dialog->desktop;
dialog->button_focused = 0;
widget_schedule_redraw(widget);
display_defer(desktop->display, &desktop->unlock_task);
dialog->closing = 1;
}
static void
unlock_dialog_keyboard_focus_handler(struct window *window,
struct input *device, void *data)
@ -886,6 +911,10 @@ unlock_dialog_create(struct desktop *desktop)
unlock_dialog_widget_leave_handler);
widget_set_button_handler(dialog->button,
unlock_dialog_button_handler);
widget_set_touch_down_handler(dialog->button,
unlock_dialog_touch_down_handler);
widget_set_touch_up_handler(dialog->button,
unlock_dialog_touch_up_handler);
desktop_shell_set_lock_surface(desktop->shell,
window_get_wl_surface(dialog->window));