diff options
-rw-r--r-- | clients/desktop-shell.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/clients/desktop-shell.c b/clients/desktop-shell.c index 6c29e7cb..b2082f3d 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 @@ -640,6 +665,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, |