clients: desktop-shell: show tooltip for panel items
authorTiago Vignatti <tiago.vignatti@intel.com>
Wed, 23 May 2012 19:06:28 +0000 (22:06 +0300)
committerKristian Høgsberg <krh@bitplanet.net>
Sat, 26 May 2012 02:54:13 +0000 (22:54 -0400)
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
clients/desktop-shell.c

index 2473f36..d497807 100644 (file)
@@ -31,6 +31,7 @@
 #include <cairo.h>
 #include <sys/wait.h>
 #include <linux/input.h>
+#include <libgen.h>
 
 #include <wayland-client.h>
 #include <wayland-cursor.h>
@@ -205,6 +206,17 @@ panel_launcher_redraw_handler(struct widget *widget, void *data)
        cairo_destroy(cr);
 }
 
+static int
+panel_launcher_motion_handler(struct widget *widget, struct input *input,
+                             uint32_t time, float x, float y, void *data)
+{
+       struct panel_launcher *launcher = data;
+
+       widget_set_tooltip(widget, basename((char *)launcher->path), x, y);
+
+       return POINTER_LEFT_PTR;
+}
+
 static void
 set_hex_color(cairo_t *cr, uint32_t color)
 {
@@ -251,6 +263,7 @@ panel_launcher_leave_handler(struct widget *widget,
        struct panel_launcher *launcher = data;
 
        launcher->focused = 0;
+       widget_destroy_tooltip(widget);
        widget_schedule_redraw(widget);
 }
 
@@ -354,6 +367,8 @@ panel_add_launcher(struct panel *panel, const char *icon, const char *path)
                                    panel_launcher_button_handler);
        widget_set_redraw_handler(launcher->widget,
                                  panel_launcher_redraw_handler);
+       widget_set_motion_handler(launcher->widget,
+                                 panel_launcher_motion_handler);
 }
 
 enum {