diff --git a/apps/gui/bitmap/list.c b/apps/gui/bitmap/list.c index fa015bf71a..b5e253d486 100644 --- a/apps/gui/bitmap/list.c +++ b/apps/gui/bitmap/list.c @@ -347,8 +347,7 @@ unsigned gui_synclist_do_touchscreen(struct gui_synclist * gui_list) short x, y; const int button = action_get_touchscreen_press(&x, &y); int line; - const struct screen *display = &screens[SCREEN_MAIN]; - const int screen = display->screen_type; + const int screen = SCREEN_MAIN; const int list_start_item = gui_list->start_item[screen]; const struct viewport *list_text_vp = &list_text[screen]; int list_width = list_text_vp->width; @@ -360,6 +359,11 @@ unsigned gui_synclist_do_touchscreen(struct gui_synclist * gui_list) return ACTION_NONE; /* make sure it is inside the UI viewport */ + if (list_display_title(gui_list, screen) && + viewport_point_within_vp(&title_text[screen], x, y) && + button == BUTTON_REL) + return ACTION_STD_CANCEL; + if (!viewport_point_within_vp(list_text_vp, x, y)) /* wider than the list's viewport, ignore it */ return ACTION_NONE; @@ -467,9 +471,6 @@ unsigned gui_synclist_do_touchscreen(struct gui_synclist * gui_list) else return ACTION_NONE; } - /* Everything above the items is cancel */ - else if (y < list_text_vp->y && button == BUTTON_REL) - return ACTION_STD_CANCEL; } return ACTION_NONE; }