From 4384a24a9eb9c61c81f8875a1de7e4bf1b8db9d4 Mon Sep 17 00:00:00 2001 From: Rusty Lynch Date: Thu, 8 Aug 2013 21:28:22 -0700 Subject: [PATCH] desktop-shell: Add touch support to panel launcher icons --- clients/desktop-shell.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/clients/desktop-shell.c b/clients/desktop-shell.c index b17de3a..40c2781 100644 --- a/clients/desktop-shell.c +++ b/clients/desktop-shell.c @@ -318,6 +318,31 @@ panel_launcher_button_handler(struct widget *widget, widget_schedule_redraw(widget); if (state == WL_POINTER_BUTTON_STATE_RELEASED) panel_launcher_activate(launcher); + +} + +static void +panel_launcher_touch_down_handler(struct widget *widget, uint32_t serial, + uint32_t time, int32_t id, + float x, float y, void *data) +{ + struct panel_launcher *launcher; + + launcher = widget_get_user_data(widget); + launcher->focused = 1; + widget_schedule_redraw(widget); +} + +static void +panel_launcher_touch_up_handler(struct widget *widget, uint32_t serial, + uint32_t time, int32_t id, void *data) +{ + struct panel_launcher *launcher; + + launcher = widget_get_user_data(widget); + launcher->focused = 0; + widget_schedule_redraw(widget); + panel_launcher_activate(launcher); } static void @@ -637,6 +662,10 @@ panel_add_launcher(struct panel *panel, const char *icon, const char *path) panel_launcher_leave_handler); widget_set_button_handler(launcher->widget, panel_launcher_button_handler); + widget_set_touch_down_handler(launcher->widget, + panel_launcher_touch_down_handler); + widget_set_touch_up_handler(launcher->widget, + panel_launcher_touch_up_handler); widget_set_redraw_handler(launcher->widget, panel_launcher_redraw_handler); widget_set_motion_handler(launcher->widget, -- 2.7.4