summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/action.c2
-rw-r--r--apps/gui/bitmap/list.c14
2 files changed, 6 insertions, 10 deletions
diff --git a/apps/action.c b/apps/action.c
index 5d0f994862..0614443bac 100644
--- a/apps/action.c
+++ b/apps/action.c
@@ -310,7 +310,7 @@ int action_get_touchpad_press(short *x, short *y)
return BUTTON_REL;
/* this is to give a BUTTON_REL after a BUTTON_REPEAT */
if (last_button & BUTTON_REL)
- return BUTTON_REL;
+ return BUTTON_REPEAT|BUTTON_REL;
return BUTTON_TOUCHPAD;
}
#endif
diff --git a/apps/gui/bitmap/list.c b/apps/gui/bitmap/list.c
index f1dbf188ab..dacf65adbd 100644
--- a/apps/gui/bitmap/list.c
+++ b/apps/gui/bitmap/list.c
@@ -278,7 +278,7 @@ void list_draw(struct screen *display, struct viewport *parent,
#if defined(HAVE_TOUCHPAD)
-static int prev_line=0;
+static unsigned int prev_line=0;
/* this needs to be fixed if we ever get more than 1 touchscreen on a target */
/* this also assumes the whole screen is used, which is a bad asusmption but
fine untill customizable lists comes in... */
@@ -297,7 +297,7 @@ unsigned gui_synclist_do_touchpad(struct gui_synclist * gui_list, struct viewpor
{
if (button == BUTTON_REL)
return ACTION_STD_MENU;
- else if (button == BUTTON_REPEAT)
+ else if (button == (BUTTON_REPEAT|BUTTON_REL))
return ACTION_STD_CONTEXT;
else
return ACTION_NONE;
@@ -355,13 +355,13 @@ unsigned gui_synclist_do_touchpad(struct gui_synclist * gui_list, struct viewpor
return ACTION_REDRAW;
}
- if (button == BUTTON_REPEAT)
+ if (button == (BUTTON_REPEAT|BUTTON_REL))
return ACTION_STD_CONTEXT;
else if(button == BUTTON_REL)
{
- if(prev_line == line)
+ if((signed)prev_line == line)
{
- prev_line = 0;
+ prev_line = -1;
return ACTION_STD_OK;
}
else
@@ -375,14 +375,10 @@ unsigned gui_synclist_do_touchpad(struct gui_synclist * gui_list, struct viewpor
}
/* title goes up one level */
else if (y > title_text[SCREEN_MAIN].y && draw_title(display, parent, gui_list) && button == BUTTON_REL)
- {
return ACTION_STD_CANCEL;
- }
/* title or statusbar is cancel */
else if (global_settings.statusbar && button == BUTTON_REL)
- {
return ACTION_STD_CANCEL;
- }
}
return ACTION_NONE;
}