1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
Index: apps/plugins/solitaire.c
===================================================================
--- apps/plugins/solitaire.c	(Revision 21192)
+++ apps/plugins/solitaire.c	(Arbeitskopie)
@@ -121,12 +121,14 @@
 #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \
       (CONFIG_KEYPAD == IPOD_1G2G_PAD)
 #   define SOL_QUIT         (BUTTON_SELECT | BUTTON_MENU)
-#   define SOL_UP           BUTTON_SCROLL_BACK
-#   define SOL_DOWN         BUTTON_SCROLL_FWD
-#   define SOL_LEFT_PRE     BUTTON_LEFT
-#   define SOL_LEFT         (BUTTON_LEFT | BUTTON_REL)
-#   define SOL_RIGHT_PRE    BUTTON_RIGHT
-#   define SOL_RIGHT        (BUTTON_RIGHT | BUTTON_REL)
+#   define SOL_LEFT         BUTTON_SCROLL_BACK
+#   define SOL_LEFT_REPEAT  (BUTTON_SCROLL_BACK | BUTTON_REPEAT)
+#   define SOL_RIGHT        BUTTON_SCROLL_FWD
+#   define SOL_RIGHT_REPEAT (BUTTON_SCROLL_FWD | BUTTON_REPEAT)
+#   define SOL_UP_PRE       BUTTON_UP
+#   define SOL_UP           (BUTTON_UP | BUTTON_REL)
+#   define SOL_DOWN_PRE     BUTTON_DOWN
+#   define SOL_DOWN         (BUTTON_DOWN | BUTTON_REL)
 #   define SOL_MOVE_PRE     BUTTON_SELECT
 #   define SOL_MOVE         (BUTTON_SELECT | BUTTON_REL)
 #   define SOL_DRAW_PRE     BUTTON_MENU
@@ -205,17 +207,19 @@
 #   define SOL_UP            BUTTON_UP
 #   define SOL_DOWN          BUTTON_DOWN
 #   define SOL_LEFT          BUTTON_SCROLL_BACK
+#   define SOL_LEFT_REPEAT   BUTTON_SCROLL_BACK|BUTTON_REPEAT
 #   define SOL_RIGHT         BUTTON_SCROLL_FWD
+#   define SOL_RIGHT_REPEAT  BUTTON_SCROLL_FWD|BUTTON_REPEAT
 #   define SOL_MOVE          (BUTTON_SELECT|BUTTON_REL)
 #   define SOL_DRAW          (BUTTON_SELECT|BUTTON_UP)
 #   define SOL_REM2CUR       BUTTON_LEFT
 /* FIXME:
 #   define SOL_CUR2STACK_PRE BUTTON_HOME
 #   define SOL_CUR2STACK     (BUTTON_HOME | BUTTON_RIGHT) */
-#   define SOL_CUR2STACK_PRE (BUTTON_RIGHT | BUTTON_REPEAT)
-#   define SOL_CUR2STACK     BUTTON_RIGHT
+#   define SOL_CUR2STACK_PRE BUTTON_RIGHT
+#   define SOL_CUR2STACK     (BUTTON_RIGHT | BUTTON_REPEAT)
+#   define SOL_REM2STACK_PRE BUTTON_LEFT
 #   define SOL_REM2STACK     (BUTTON_LEFT|BUTTON_REPEAT)
-#   define SOL_REM2STACK_PRE BUTTON_LEFT
 #   define HK_MOVE           "SELECT"
 #   define HK_DRAW           "REC"
 #   define HK_REM2CUR        "LEFT"
@@ -1589,16 +1593,15 @@

         /* what to do when a key is pressed ... */
         button = rb->button_get( true );
-#if (CONFIG_KEYPAD == SANSA_E200_PAD)
-        if (button&(BUTTON_SCROLL_BACK|BUTTON_SCROLL_FWD))
-            button = button & (~BUTTON_REPEAT);
-#endif
         switch( button )
         {
             /* move cursor to the last card of the previous column
              * or to the previous final stack
              * or to the remains stack */
             case SOL_RIGHT:
+#ifdef SOL_RIGHT_REPEAT
+            case SOL_RIGHT_REPEAT:
+#endif
 #ifdef SOL_RIGHT_PRE
                 if( lastbutton != SOL_RIGHT_PRE )
                     break;
@@ -1627,6 +1630,9 @@
              * or to the next final stack
              * or to the remains stack */
             case SOL_LEFT:
+#ifdef SOL_LEFT_REPEAT
+            case SOL_LEFT_REPEAT:
+#endif
 #ifdef SOL_LEFT_PRE
                 if( lastbutton != SOL_LEFT_PRE )
                     break;