diff --git a/common/utils/T/tracer/gui/container.c b/common/utils/T/tracer/gui/container.c
index 344f864382fe10e699f0eaaf1b889c94952ad02c..d3ce2a110bcfde184591abed34395b1cc25ef9c0 100644
--- a/common/utils/T/tracer/gui/container.c
+++ b/common/utils/T/tracer/gui/container.c
@@ -237,7 +237,7 @@ static void horizontal_button(gui *_g, widget *_this, int x, int y,
   l = this->common.children;
   while (l) {
     if (l->item->x <= x && x < l->item->x + l->item->width) {
-      l->item->button(g, l->item, x - l->item->x, y, button, up);
+      l->item->button(g, l->item, x, y, button, up);
       break;
     }
     l = l->next;
@@ -255,7 +255,7 @@ static void vertical_button(gui *_g, widget *_this, int x, int y,
   l = this->common.children;
   while (l) {
     if (l->item->y <= y && y < l->item->y + l->item->height) {
-      l->item->button(g, l->item, x, y - l->item->y, button, up);
+      l->item->button(g, l->item, x, y, button, up);
       break;
     }
     l = l->next;
diff --git a/common/utils/T/tracer/gui/textlist.c b/common/utils/T/tracer/gui/textlist.c
index 9244b8c9bf5df02126d2c3dccbbffe2f60bc4d07..50a21cd45984c0666b98e158b4250d5238ccb9b3 100644
--- a/common/utils/T/tracer/gui/textlist.c
+++ b/common/utils/T/tracer/gui/textlist.c
@@ -49,6 +49,8 @@ static void button(gui *_g, widget *_this, int x, int y, int button, int up)
   struct gui *g = _g;
   struct textlist_widget *this = _this;
   LOGD("BUTTON textlist %p xy %d %d button %d up %d\n", _this, x, y, button, up);
+  y -= this->common.y;
+  x -= this->common.x;
   /* scroll up */
   if (button == 4 && up == 0) {
     gui_notify(g, "scrollup", _this, NULL);