diff --git a/common/utils/T/tracer/gui/gui.h b/common/utils/T/tracer/gui/gui.h
index 2561fe6d16cf018d8c43d58fd3e213a3164da2d5..9d7f283ea1a022b7e071d52064d7b5e50ce35c08 100644
--- a/common/utils/T/tracer/gui/gui.h
+++ b/common/utils/T/tracer/gui/gui.h
@@ -26,6 +26,8 @@ widget *new_xy_plot(gui *gui, int width, int height, char *label,
     int vruler_width);
 widget *new_textlist(gui *_gui, int width, int nlines, int background_color);
 
+void label_set_clickable(gui *gui, widget *label, int clickable);
+
 void container_set_child_growable(gui *_gui, widget *_this,
     widget *child, int growable);
 
@@ -60,6 +62,8 @@ int new_color(gui *gui, char *color);
  *      - scrollup   { void *: NULL }
  *      - scrolldown { void *: NULL }
  *      - click      { int [2]: line, button }
+ * - label:
+ *      - click      { int: button } (if enabled)
  */
 
 /* same type as in gui_defs.h */
diff --git a/common/utils/T/tracer/gui/label.c b/common/utils/T/tracer/gui/label.c
index 35b4f7b667b7212d17ad7ae61c6946660e33feb1..80d885f1d21e23ab224c747ee1edce2f266b10eb 100644
--- a/common/utils/T/tracer/gui/label.c
+++ b/common/utils/T/tracer/gui/label.c
@@ -44,3 +44,37 @@ widget *new_label(gui *_gui, const char *label)
 
   return w;
 }
+
+static void button(gui *gui, widget *_this, int x, int y, int button, int up)
+{
+  LOGD("BUTTON label %p xy %d %d button %d up %d\n", _this, x, y, button, up);
+
+  if (up != 0) return;
+
+  gui_notify(gui, "click", _this, &button);
+}
+
+/* we could use default_button, but it's in widget.c, so, well... */
+static void no_button(gui *gui, widget *_this, int x,int y,int button,int up)
+{
+  /* do nothing */
+}
+
+/*************************************************************************/
+/*                             public functions                          */
+/*************************************************************************/
+
+void label_set_clickable(gui *_g, widget *_this, int clickable)
+{
+  struct gui *g = _g;
+  struct label_widget *this = _this;
+
+  glock(g);
+
+  if (clickable)
+    this->common.button = button;
+  else
+    this->common.button = no_button;
+
+  gunlock(g);
+}