desktop-shell: Add touch support to panel launcher icons
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 @@
 	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_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,