summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/clix.c36
1 files changed, 27 insertions, 9 deletions
diff --git a/apps/plugins/clix.c b/apps/plugins/clix.c
index bfe33b90de..e0cf88bf08 100644
--- a/apps/plugins/clix.c
+++ b/apps/plugins/clix.c
@@ -65,12 +65,16 @@ PLUGIN_HEADER
65#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ 65#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
66 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 66 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
67 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 67 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
68#define CLIX_BUTTON_QUIT BUTTON_MENU 68#define CLIX_BUTTON_QUIT (BUTTON_SELECT | BUTTON_MENU)
69#define CLIX_BUTTON_UP BUTTON_SCROLL_BACK 69#define CLIX_BUTTON_UP BUTTON_MENU
70#define CLIX_BUTTON_DOWN BUTTON_SCROLL_FWD 70#define CLIX_BUTTON_DOWN BUTTON_PLAY
71#define CLIX_BUTTON_CLICK BUTTON_SELECT 71#define CLIX_BUTTON_SCROLL_FWD BUTTON_SCROLL_FWD
72#define CLIX_BUTTON_RIGHT BUTTON_RIGHT 72#define CLIX_BUTTON_SCROLL_BACK BUTTON_SCROLL_BACK
73#define CLIX_BUTTON_LEFT BUTTON_LEFT 73#define CLIX_BUTTON_CLICK (BUTTON_SELECT | BUTTON_REL)
74#define CLIX_BUTTON_CLICK_PRE BUTTON_SELECT
75#define CLIX_BUTTON_CLICK_PRE2 (BUTTON_SELECT | BUTTON_REPEAT)
76#define CLIX_BUTTON_RIGHT BUTTON_RIGHT
77#define CLIX_BUTTON_LEFT BUTTON_LEFT
74 78
75#elif (CONFIG_KEYPAD == GIGABEAT_PAD) 79#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
76#define CLIX_BUTTON_QUIT BUTTON_POWER 80#define CLIX_BUTTON_QUIT BUTTON_POWER
@@ -694,6 +698,8 @@ static int clix_handle_game(struct clix_game_state_t* state)
694 int start; 698 int start;
695 int end; 699 int end;
696 int oldx, oldy; 700 int oldx, oldy;
701
702 int lastbutton = BUTTON_NONE;
697 703
698 while(true) 704 while(true)
699 { 705 {
@@ -710,9 +716,7 @@ static int clix_handle_game(struct clix_game_state_t* state)
710 oldx = state->x; 716 oldx = state->x;
711 oldy = state->y; 717 oldy = state->y;
712 718
713 rb->button_get_w_tmo(end - *rb->current_tick); 719 button = rb->button_get_w_tmo(end - *rb->current_tick);
714 button = rb->button_status();
715 rb->button_clear_queue();
716#ifdef HAVE_TOUCHSCREEN 720#ifdef HAVE_TOUCHSCREEN
717 if(button & BUTTON_TOUCHSCREEN) 721 if(button & BUTTON_TOUCHSCREEN)
718 { 722 {
@@ -745,6 +749,7 @@ static int clix_handle_game(struct clix_game_state_t* state)
745#ifndef HAVE_TOUCHSCREEN 749#ifndef HAVE_TOUCHSCREEN
746#ifdef CLIX_BUTTON_SCROLL_BACK 750#ifdef CLIX_BUTTON_SCROLL_BACK
747 case CLIX_BUTTON_SCROLL_BACK: 751 case CLIX_BUTTON_SCROLL_BACK:
752 case CLIX_BUTTON_SCROLL_BACK|BUTTON_REPEAT:
748#endif 753#endif
749 case CLIX_BUTTON_UP: 754 case CLIX_BUTTON_UP:
750 if( state->y == 0 || 755 if( state->y == 0 ||
@@ -767,6 +772,7 @@ static int clix_handle_game(struct clix_game_state_t* state)
767 break; 772 break;
768#ifdef CLIX_BUTTON_SCROLL_FWD 773#ifdef CLIX_BUTTON_SCROLL_FWD
769 case CLIX_BUTTON_SCROLL_FWD: 774 case CLIX_BUTTON_SCROLL_FWD:
775 case CLIX_BUTTON_SCROLL_FWD|BUTTON_REPEAT:
770#endif 776#endif
771 case CLIX_BUTTON_DOWN: 777 case CLIX_BUTTON_DOWN:
772 if( state->y == (BOARD_HEIGHT - 1)) 778 if( state->y == (BOARD_HEIGHT - 1))
@@ -788,6 +794,15 @@ static int clix_handle_game(struct clix_game_state_t* state)
788#endif 794#endif
789 case CLIX_BUTTON_CLICK: 795 case CLIX_BUTTON_CLICK:
790 { 796 {
797#ifdef CLIX_BUTTON_CLICK_PRE
798#ifdef CLIX_BUTTON_CLICK_PRE2
799 if (lastbutton != CLIX_BUTTON_CLICK_PRE
800 && lastbutton != CLIX_BUTTON_CLICK_PRE2)
801#else
802 if (lastbutton != CLIX_BUTTON_CLICK_PRE)
803#endif
804 break;
805#endif
791 if (state->selected_count > 1) { 806 if (state->selected_count > 1) {
792 switch( clix_clear_selected( state)) 807 switch( clix_clear_selected( state))
793 { 808 {
@@ -842,6 +857,9 @@ static int clix_handle_game(struct clix_game_state_t* state)
842 857
843 break; 858 break;
844 } 859 }
860
861 if(button != BUTTON_NONE)
862 lastbutton = button;
845 863
846 if( (oldx != state->x || oldy != state->y) && 864 if( (oldx != state->x || oldy != state->y) &&
847 state->board_selected[ XYPOS( oldx, oldy)] != 865 state->board_selected[ XYPOS( oldx, oldy)] !=