From a74f8659179c7d305e9449bf060f5432dbd5cff0 Mon Sep 17 00:00:00 2001 From: Cedric Roux <cedric.roux@eurecom.fr> Date: Wed, 4 May 2016 17:13:38 +0200 Subject: [PATCH] more logical handling of x/y in button events click at x/y refers to the toplevel window and the widget knows its own x/y position, so let's keep the x/y of the click as is and let the down widget handle translation by itself something like that --- common/utils/T/tracer/gui/container.c | 4 ++-- common/utils/T/tracer/gui/textlist.c | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/common/utils/T/tracer/gui/container.c b/common/utils/T/tracer/gui/container.c index 344f864382..d3ce2a110b 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 9244b8c9bf..50a21cd459 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); -- GitLab